CData Excel Online Driver を使って SharePoint ドキュメントの Excel にアクセスする

by 杉本和也 | 2022年02月03日

f:id:sugimomoto:20220201221016p:plain

こんにちは。CData Software Japan リードエンジニアの杉本です。

前回、CData Excel Onlineの基本的な使い方を解説しました。

www.cdata.com

CData Excel Online はデフォルトだとOneDriver for business にアクセスする設定になっているのですが、設定を追加することで、SharePoint ドキュメントライブラリのExcel ファイルたちにもアクセスすることが可能です。

というわけで、今回はSharePoint ドキュメントライブラリ側へのアクセス方法を解説したいと思います。

必要なプロパティ:Drive

SharePointのドキュメントライブラリにアクセスしたい場合は、以下の「Drive」という接続プロパティを設定する必要があります。

cdn.cdata.com

おそらくSharePointに慣れ親しんでいる人からすれば、この「Drive」とはなんぞや? となるかと思いますが、以下のGraphAPIのドキュメントで触れられている通り、ユーザーのOneDriveもしくはSharePointのドキュメントライブラリを表す「最上位のオブジェクト」のことを示すものらしいです。(私もこのDriverをテストしていて初めて知りました)

docs.microsoft.com

f:id:sugimomoto:20220201220624p:plain

前述の通り、CData Excel Online Driverはデフォルトでは「ユーザーの規定のドライブのルートフォルダー」つまるところ、自分のOneDriver for businessに対してアクセスし、Excelファイルをリストアップします。

これを、別なドライブ、SharePoint ドキュメントライブラリに切り替えることで、Excelファイルのリストアップ先を切り替えられるというわけです。

Drive IDの確認方法

さて、この「Drive」プロパティにはDriveの一意なIDを指定する必要があります。

このIdは「Drives」というビューから取得できます。

f:id:sugimomoto:20220201220630p:plain

「Drives」ビューはデフォルトでTOPレベルのSharePointサイトから情報を取得するようになっており、

今回は以下のトライアル環境で初期から構成されている「コミュニケーションサイト」が持っている3つのドキュメントライブラリを表示しています。

f:id:sugimomoto:20220201220636p:plain

DriveのIDが特定できたら、一旦その値を控えておき、接続文字列に追加します。

jdbc:excelonline:
InitiateOAuth=GETANDREFRESH;
Drive=b!8Rtlnfaxp026n7Ood_wFeNvigKFzRL5DiEunZRzweXIe4pU8E5skSrx6-Z5etpwX;

これにより展開されるExcelファイルが対象のSharePointドキュメントライブラリに含まれるものに切り替わります。

f:id:sugimomoto:20220201220641p:plain

TOPレベルSharePointサイト以外のDriveを特定する方法

もし、TOPレベルのSharePointサイト以外のDrive IDを知りたいよ、という場合は、以下の2つのプロパティを設定してみてください。

cdn.cdata.com

cdn.cdata.com

SharePointURLにはTOPレベルのSharePointサイトURL、IncludeSharePointSitesを「True」を指定して、再度接続を行い直します。

この「IncludeSharePointSites」をつけることで、Drivesビューにアクセスした際に、すべてのSharePointサイトのドキュメントライブラリをクロールしてくるようになります。

jdbc:excelonline:
InitiateOAuth=GETANDREFRESH;
SharepointURL=https://sugimomoto51.sharepoint.com/;
IncludeSharePointSites=true;

この接続を行う際、AccessTokenの取得し直しが必要です。ODBC DriverやExcel Add-in であれば「変更」ボタン、JDBC Driverの場合は「OAuthSettingsLocation」のファイルを一度削除しましょう。

cdn.cdata.com

これで接続を行うと、再度認可要求が実施されます。この際に、SharePointサイト一覧を取得するためのアクセス権が追加されます。

f:id:sugimomoto:20220201220705p:plain

この状態であらためて、「Drives」のビューにアクセスすると、以下のようにTOPサイト以外のサイトが持っているドキュメントライブラリも収集して表示してくれます。これで他のDrive IDも特定できますね。

f:id:sugimomoto:20220201220710p:plain

SharePointサイトが多い場合の注意点

「IncludeSharePointSites」は便利ですが、SharePointサイトが多い場合、時間がかかりすぎる場合があります。

その場合はちょっと面倒ですが、「SharePointSites」でSiteの「ID」を特定してから

f:id:sugimomoto:20220201220715p:plain

DrivesビューをSiteIdでフィルタリングしてあげると、必要最低限のアクセスだけで一覧が取得できます。

SELECT * FROM Drives WHERE SiteId = 'sugimomoto51.sharepoint.com,990e2b67-b696-492b-9c48-98a0d6ab9920,84c319a5-53f6-4cbe-9464-bf80b637cfc7';

f:id:sugimomoto:20220201220721p:plain

おわりに

今回紹介した機能意外にもExcelファイルを扱う上で便利な機能がたくさん存在します。

もし利用方法でわからない点があれば、お気軽にテクニカルサポートフォームまでお問い合わせください。

https://www.cdata.com/jp/support/submit.aspx

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。