crossframe » Office/SharePoint http://crossframe.iiv.jp Windows Dev. Site Tue, 07 Nov 2023 06:31:52 +0000 ja hourly 1 https://wordpress.org/?v=3.8.41 Excel Services REST API / SharePoint ../../../20141004839/ ../../../20141004839/#comments Sat, 04 Oct 2014 06:05:07 +0000 ../../../?p=839 SharePointには以前から興味を持っていましたが、最近Excelの機能で使いたいことがあり、それに関連してREST APIのテストしてみました。

環境 : Excel 2010 / Windows 7, SharePoint 2013 / Windows 2012R2
sp01
まず上のようなB,C列のデータをグラフ表示する簡単なシートを作りました。(グラフの名前をGraph1とします)
A1の初期値を変えると、B,C列のデータも変化します。
これを普通にファイルを保存すると同じように、サーバに保存します。
普通に、といったのは、ファイル名のところに、下のURLを記入するからです。

http://[ShaerPointサーバ名]/sites/cata01/docApp/Book2.xlsx

何か違和感がありますが、これで認証ポップアップがでてきて、サーバに保存します。
URLはSharePointサーバであらかじめ設定したドキュメントを置く場所をさします。

sp02
SharePointのドキュメントリストをみると、保存されているのがわかります。
そして、これをブラウザ上で表示してみます。
sp03

次に、REST APIを使って、データを変更して、グラフを変えてみます。

http://[ShaerPointサーバ名]/sites/cata01/_vti_bin/ExcelRest.aspx/docApp/Book2.xlsx/model/Charts(‘Graph1′)?Ranges(‘A1′)=0.05

sp04

http://[ShaerPointサーバ名]/sites/cata01/_vti_bin/ExcelRest.aspx/docApp/Book2.xlsx/model/Charts(‘Graph1′)?Ranges(‘A1′)=0.8

sp05

URLでこのようにExcelシート内部のデータを操作できるのが、とても興味深いです。
Webということは、JavaScript連携も可能ということなので、またの機会にやってみたいと思います。

参考 : http://msdn.microsoft.com/ja-jp/library/ee556413.aspx

]]>
../../../20141004839/feed/ 0
Apps for Office ../../../20131104603/ ../../../20131104603/#comments Mon, 04 Nov 2013 12:14:50 +0000 http://xfra.me/?p=603 VisualStudio 2013のプロジェクトテンプレートに、Office 2013用アプリというテンプレートがC#の下にあります。
これを以下のサイトを参考に、Apps for Officeをつくってみました。(Excel)

How to: Create your first task pane or content app by using Visual Studio

http://msdn.microsoft.com/library/office/fp142161%28v=office.15%29

その前に、これに取り組もうと思ったのは、なんとJavaScriptでExcelのCellを読み書きできてしまうからです。どのように使うものなのかということより、まずこれを試したかったからです。
(しかしいつもネーミングが汎用的でわかりづらいですね。(ストアアプリとかも) 日本語だとOfficeアプリ? Office Web Appsと似ている・・など、もう少し機能が明確化できる名前だといいのですが。)

Office用アプリの作成で、「Excelのコンテンツアプリ」を選びました。参考サイトとは違うのですが、作業ウィンドウという特別なところにおかれるのではなく、画像やグラフのように任意の場所に置きたかったからです。
oa1

環境 VisualStudio 2013, Office 2013 / Windows 8.1
Home.js

(function () {
    "use strict";
    Office.initialize = function (reason) {
        $(document).ready(function () {
            app.initialize();

            $('#btnWrite').click(writeText);
            $('#btnRead').click(readText);
        });
    };
    function writeText() {
        Office.context.document.setSelectedDataAsync($('#wtest').text(),
            function (asyncResult) {
                if (asyncResult.status === "failed") {
                    $('#result').text(asyncResult.error.message);
                }
            }
        )
    }
    function readText() {
        Office.context.document.getSelectedDataAsync("matrix",
            function (asyncResult) {
                if (asyncResult.status === "failed") {
                    $('#result').text(asyncResult.error.message);
                }
                else {
                    $('#rtest').text(asyncResult.value);
                }
            }
        );
    }
})();

Home.html

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <title></title>
    <script src="../../Scripts/jquery-1.9.1.js" type="text/javascript"></script>

    <link href="../../Content/Office.css" rel="stylesheet" type="text/css" />
    <script src="https://appsforoffice.microsoft.com/lib/1.0/hosted/office.js" type="text/javascript"></script>

    <link href="../App.css" rel="stylesheet" type="text/css" />
    <script src="../App.js" type="text/javascript"></script>
    <script src="../Visualization.js" type="text/javascript"></script>

    <link href="Home.css" rel="stylesheet" type="text/css" />
    <script src="Home.js" type="text/javascript"></script>
</head>
<body>
    <center><h3>Apps for Office Test</h3></center>
    <button id="btnWrite">Write Text</button>
    <button id="btnRead">Read Text</button>
    <div id="wtest">123456789</div>
    <div id="rtest">---</div>
    <hr />
    <div id="result">message : </div>
</body>
</html>

デフォルトでjQueryサポートです。最近つかいまくってますね。またC#のプロジェクトなのにC#はどこにもでてきません。

初期画面
oa2

‘Write Text’をクリック(表示領域をあらかじめ選択してからも可。コードを変更して配列を書き込むことも可)
そして選択箇所そのままで’Read Text’をクリック
oa3

値を入力後、範囲を指定して’Read Text’をクリック
oa4

範囲を指定して’Write Text’をクリック
oa5
配列を書き込むようにしていないのでエラー

オフラインローカルのExcelファイルとしては使えないみたいですが(まだ調査不足ですが)、それがちょっと残念です。(ExcelシートにWebViewが埋め込まれ、相互データ連携ができると、Webの柔軟性からかなり用途が広がるのですが)
でもなかなか面白い機能です。

(追記:2014/09/27)SharePointに登録して、Officeアプリとして挿入が可能。

]]>
../../../20131104603/feed/ 0
Office365をPowerShellで管理 ../../../20130406155/ ../../../20130406155/#comments Sat, 06 Apr 2013 03:52:43 +0000 http://xfra.me/?p=155 Office365を使ってみて、このユーザの管理とかPowerShellでやってみたいと思い、試してみました。

前提条件はOffice365が使える状態になっていることです。以下のような画面で表示される、ユーザを表示したいと思います。
o365admin

まずコマンドレットをインストールする必要があります。以下のサイトから、サインインアシスタント、OnlineServicesモジュールをインストールしました。
環境 : Windows 8 Pro

http://onlinehelp.microsoft.com/office365-enterprises/hh124998.aspx

o365cmdinst

インストールが終了して、以下のコマンドで、多数のMSOnline用のコマンドレットが表示されればOKです。

Get-Command -module MSOnline

準備ができたら以下のコマンドを順に実行していきます。

Import-Module MSOnline
$Cred = Get-Credential
$Sess = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $Cred -Authentication Basic -AllowRedirection
Import-PSSession $Sess
Connect-MsolService –Credential $Cred

Get-MsolUser

出力結果

o365getuser

参考サイト

http://technet.microsoft.com/ja-jp/magazine/hh750396.aspx

]]>
../../../20130406155/feed/ 0