接続の確立
CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でMicrosoft SharePoint Excel Cmdlets を使用する例を示します。
インストールおよび接続
PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。
Install-Module Microsoft SharePoint ExcelCmdlets
プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。
Import-Module Microsoft SharePoint ExcelCmdlets;
Connect-ExcelServices cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。
$conn = Connect-ExcelServices -Url 'https://myorg.sharepoint.com' -User '[email protected]' -Password 'password' -File 'Book1.xlsx'
このセクションでは、SharePoint Online およびSharePoint On Premises への接続に関する詳細について説明します。
ワークブックへの接続
使用しているSharePoint のエディションに関わらず、File をExcel ワークブックに設定します。このパスは次のプロパティからの相対パスです。
- Library:デフォルトでは、Shared Documents ライブラリが使用されます。このプロパティを使って、組織内の別のドキュメントライブラリを指定できます。例えば、OneDrive for Business に接続する場合は、このプロパティを"Documents" に設定します。
- Folder:このプロパティを使って、ライブラリ内のサブフォルダへのパスを指定できます。パスはLibrary で指定されたライブラリ名と関連があります。
テーブルとしてのスプレッドシートデータへの接続
本製品 は、基底のAPI の使用可能なオブジェクトに基づいて使用可能なテーブルを検出します。
API は異なるAPI オブジェクトを表示します。スプレッドシートの構成とSharePoint のバージョンに基づいてAPI を選択します。
- OData: OData API を使用すると、Excel で[挿入]->[テーブル]をクリックして作成されたExcel テーブルオブジェクト(範囲やスプレッドシートではありません)から定義されたテーブルにアクセスできます。OData API に接続する際、ワークブックにテーブルオブジェクトが定義されていない場合は、本製品 がテーブルを返さないことがあります。テーブルとしてスプレッドシートまたは範囲に接続するには、UseRESTAPI をtrue に設定します。
- REST: REST API を使用すると、Excel テーブルオブジェクト、範囲、およびスプレッドシートから定義されたテーブルへのアクセスを可能にします。これはデフォルトのAPI です。範囲およびスプレッドシートから多数の行をリクエストすることはREST API によって制限されており、本製品 では返される行数をデフォルトで100に制限しています。また本製品 は、デフォルトで1行目からカラム名を検出します。これを無効にするには、Header を設定します。
DefineTables を追加設定すると、Excel の範囲の構文を使用して、範囲に基づいてテーブルを定義できます。大きすぎる範囲は、API によって制限されます。
本製品 がテーブルを検出してそれらをクエリする方法について、詳しくはData Model を参照してください。
SharePoint オンプレミスへの接続
Url をサーバー名もしくはIP アドレスに設定します。さらに、SharePointVersion および認証値を設定します。
SharePoint OnPremise を認証するには、AuthScheme を認証タイプに設定し、必要に応じてUser およびPassword を設定します。
Note:SharePoint On-Premises 2010に接続する場合は、 UseRESTAPI をtrue に設定する必要があります。
-
Windows(NTLM)
これは最も一般的な認証タイプです。そのため、本製品 はNTLM をデフォルトとして使用するように事前設定されています。Windows のUser およびPassword を設定して接続します。
-
Kerberos
Kerberos で認証する方法についての詳細は、Kerberos の使用 を参照してください。
-
Forms
この設定で、Active Directory の代わりにカスタム認証メソッドによる認証が可能になります。この認証タイプを使用するには、AuthScheme をFORMS に設定し、User およびPassword を設定します。
-
ADFS
AuthScheme をADFS に設定します。次の接続プロパティを設定する必要があります。
- User:ADFS ユーザーに設定。
- Password:ユーザーのADFS パスワードに設定。
- SSOLoginURL:ADFS サーバーのWS-Trust エンドポイントに設定。
- RelyingParty:SharePoint のADFS サーバー上の証明書利用者の識別子の値です。
AuthScheme=ADFS;User=ADFSUserName;Password=ADFSPassword;SSOLoginURL=https://<authority>/adfs/services/trust/2005/usernamemixed;SSO Properties ='RelyingParty=urn:sharepoint:sp2016;';
-
Anonymous Access
Set the AuthScheme to NONE along with the URL.
データの取得
Select-ExcelServices cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。
$results = Select-ExcelServices -Connection $conn -Table "Account" -Columns @("Id, Name") -Where "Industry='Floppy Disks'"Invoke-ExcelServices cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。
cmdlet 出力のパイプ処理
cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。
Select-ExcelServices -Connection $conn -Table Account -Where "Industry = 'Floppy Disks'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myAccountData.csv -NoTypeInformation
Select-ExcelServices からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。
ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。
PS C:\> $conn = Connect-ExcelServices -Url 'https://myorg.sharepoint.com' -User '[email protected]' -Password 'password' -File 'Book1.xlsx' PS C:\> $row = Select-ExcelServices -Connection $conn -Table "Account" -Columns (Id, Name) -Where "Industry = 'Floppy Disks'" | select -first 1 PS C:\> $row | ConvertTo-Json { "Connection": { }, "Table": "Account", "Columns": [ ], "Id": "MyId", "Name": "MyName" }