【徹底解説】SharePoint Excel Services のデータをSQL Server のリンクサーバーにノーコードで連携する方法

兵藤朋代
兵藤朋代
コンテンツスペシャリスト
業務で利用しているSQL Server にSharePoint Excel Services のデータを統合したい方向けに、リンクサーバーを活用したアプローチを紹介。CData ODBC DriverのSQL Gateway 機能を使うことで3ステップ設定。使い慣れたSQL Server からSharePoint Excel Services データに手軽にアクセスできるようになります。



本記事では、SQL ServerのTDS Remoting 機能を使ってSharePoint Excel Services にリンクサーバーとしてシームレスに連携する方法を解説します。この連携には、CData ODBC Driverに同梱されているSQL Gateway を使用します。この方法により、SQL Server のインターフェースからSharePoint Excel Services への読み書き双方向のアクセスが可能になり、既存のSQL Server 環境で外部データを活用できるようになります。スクリーンショット付きで紹介していくので、初心者の方でも簡単に設定できます!

SharePoint Excel Services をSQL Server のリンクサーバーとして利用する3つの主要シナリオ

  • SQL Server に接続しているアプリケーションでSharePoint Excel Services のデータを利用したいがデータ接続を増やしたくない
  • SharePoint Excel Services のデータをSQL Server のデータや他のリンクサーバーのデータをJOIN などして使いたい
  • 利用したいミドルウェア・BI ツールなどにODBC やJDBC の汎用のインターフェースがないが、SQL Server には接続できる

【準備編】SharePoint Excel Services ODBC DSNの設定方法

まずは、本記事右側のサイドバーからExcelServices ODBC Driver の無償トライアルをダウンロード・インストールしてください。ODBC ドライバーのインストール完了時にODBC DSN 設定画面が立ち上がります。または、Microsoft ODBC データソースアドミニストレーターを使ってDSN を作成および設定できます。

ワークブックへの接続

どちらのSharePoint エディションをお使いでも、File を Excel ワークブックに設定してください。このパスは以下のプロパティからの相対パスになります。

  • Library:デフォルトではShared Documents ライブラリが使用されます。このプロパティを使って、組織内の別のドキュメントライブラリを指定してみてください。例えば、OneDrive for Business に接続する場合は、このプロパティを"Documents" に設定します。
  • Folder:このプロパティを使って、ライブラリ内のサブフォルダへのパスを指定できます。パスはLibrary で指定されたライブラリ名に関連します。

テーブルとしてのスプレッドシートデータへの接続

CData 製品では、基底API で利用可能なオブジェクトに基づいて、使用可能なテーブルを検出していきます。

API では異なるAPI オブジェクトを表示します。スプレッドシートの構成とSharePoint のバージョンに基づいてAPI を選択しましょう。

  • OData: OData API を使用すると、Excel で[挿入]->[テーブル]をクリックして作成されたExcel テーブルオブジェクト(範囲やスプレッドシートではありません)から定義されたテーブルにアクセスできます。OData API に接続する際、ワークブックにテーブルオブジェクトが定義されていない場合は、CData 製品がテーブルを返さないことがあります。テーブルとしてスプレッドシートまたは範囲に接続するには、UseRESTAPI をtrue に設定してください。
  • REST: REST API を使用すると、Excel テーブルオブジェクト、範囲、およびスプレッドシートから定義されたテーブルへアクセスできます。これがデフォルトの API です。範囲およびスプレッドシートから多数の行をリクエストすることは REST API によって制限されており、CData 製品では返される行数をデフォルトで 100 に制限しています。また CData 製品では、デフォルトで1行目からカラム名を検出します。これを無効にするには、Header を設定してください。

DefineTables を追加設定すると、Excel の範囲の構文を使用して、範囲に基づいてテーブルを定義できます。大きすぎる範囲は、API によって制限されます。

SharePoint オンプレミスへの接続

URL をサーバー名もしくはIP アドレスに設定しましょう。さらに、SharePointVersion と認証値を設定します。

SharePoint OnPremises を認証するには、AuthScheme を認証タイプに設定し、必要に応じてUserPassword を設定してください。

Note:SharePoint On-Premises 2010 に接続する場合は、 UseRESTAPI をtrue に設定する必要があります。

    Windows(NTLM)

    最も一般的な認証タイプです。CData 製品では NTLM をデフォルトとして使用するよう事前設定されています。Windows のUserPassword を設定して接続してください。

    その他の認証方法については、ヘルプドキュメントの「はじめに」をご覧ください。

    【設定手順1】SQL Gateway でSharePoint Excel Services ODBC DSN をセットアップする方法

    CData ODBC ドライバにはSQL Gateway が同梱されています。このSQL Gateway に、SharePoint Excel Services ODBC Driver をサービスとして設定します。

    1. 「スタート」画面から「SQL Gateway」を起動します。青い「C」のSQL Gateway ロゴが右下のインジケータに表示されます。 アプリケーションコンソールが開かない場合には、SQL Gateway アイコンを右クリックして、「Open Application」をクリックしてください。
    2. アプリケーションコンソールの「Service」タブを開いて、「Add」をクリックして、新しいODBC データソースを設定します。
    3. SharePoint Excel Services ODBC の設定を行います。
      サービス名:任意
      リモーティングDB:TD(SQL Server)を選択
      データソース:ドロップダウンでCData SharePoint Excel Services Source Sys を選択
      ポート:使用していないポートを選択
      CData SharePoint Excel Services ODBC Driver設定画面 - SQL Gatewayでの設定方法
    4. 次に「ユーザー」タブ→「追加」からユーザーを登録します。
      ユーザー毎にFull アクセスか、Readonly か、None の権限を選択できます。
      複数のODBC データソースがある場合には、データソース毎に権限の設定が可能です。
      SQL Gateway ユーザー権限設定画面 - SharePoint Excel Servicesデータアクセス権限の設定方法
      「OK」を押して、ユーザー登録を完了します。 その後「変更を保存」で設定を保存します。
    5. SQL Gateway の「サービス」タブで「開始」ボタンを押して、サービスを起動します。サービスの左側の〇が緑色になれば、サービスは起動中です。

    【設定手順2】SQL Server でSharePoint Excel Services リンクサーバーを構築する方法

    SQL Gateway 側でサービスの設定が終わったら、SQL Server 側でSharePoint Excel Services サービスをリンクサーバーとして使う設定をしましょう。

    1. SQL Server Management Studio (SSMS) を開きます。
      オブジェクトエクスプローラーの「サーバーオブジェクト」で「リンクサーバー」を右クリックして、「新しいリンクサーバー」をクリックします。
    2. 新しいリンクサーバーの設定画面の「全般」で、以下を入力します。
      サーバー種類:その他データソース
      プロバイダー:Microsoft OLE DB Driver for SQL Server
      データソース:この例の場合、localhost, 1433
      カタログ:ODBC DSN 名を入力
      SQL Server リンクサーバー設定画面 - SharePoint Excel Servicesをリンクサーバーとして追加する方法
    3. また、「セキュリティ」では、「このセキュリティコンテキスト」を選択して、リモートログインにSQL Gateway にユーザー設定したUser 名とPassword を入力します。

    これで、リンクサーバーの設定は終わりなので、「OK」を押して設定を保存します。

    【活用例1】SSMS(SQL Server Management Studio)でSharePoint Excel Services データを操作する方法

    SSMS のオブジェクトエクスプローラーのリンクサーバー下にSharePoint Excel Services のリンクサーバーが作成され、「テーブル」下にSharePoint Excel Services のデータがアプリ単位でテーブルが生成されます。
    新しいクエリを選択し、SharePoint Excel Services のデータを取得してみます。

    実践的なSQL クエリの例と解説

    SELECT * from リンクサーバー名.CData SharePoint Excel Services Source Sys(ODBC DSN 名).SharePoint Excel Services.テーブル名
    

    このように、API のリクエストではなく通常のSQL 構文でデータを扱うことが可能になっています

    【活用例2】Visual Studio からSharePoint Excel Services のリンクサーバーに連携する方法

    Visual Studio のサーバーエクスプローラーの「データ接続」を右クリックし、「接続の追加」をクリックして、データソースの選択画面を開きます。 データソースの選択画面でデータソースを「Microsoft SQL Server 」に選択して、「続行」を押します。

    Visual Studio での接続設定とクエリ実行手順

    「接続の追加」画面で、以下を入力します。
    サーバー名:SQL Server のサーバー名
    認証:任意の認証方式
    データベース名の選択または入力:※master など
    ※リンクサーバーを直接データベース名として入力することはできないようです。なので上位のデータベース名で設定しておきます。

    Visual Studio でのSharePoint Excel Servicesリンクサーバー接続設定画面 - データ連携の設定方法

    「テスト接続」をして大丈夫であれば、「OK」を押して設定を完了させます。

    「新しいクエリ」で、SQL でSELECT 文を書いてデータを取得してみます。

    SELECT * from リンクサーバー名.CData SharePoint Excel Services Source Sys(ODBC DSN 名).SharePoint Excel Services.テーブル名
    

    このように、通常のSQL Server のリンクサーバーと同じようにVisual Studio 内SharePoint Excel Services のデータを扱うことが可能になります。 他のIDE でもSQL Server にアクセスする方法でSharePoint Excel Services のデータにSQL でアクセスが可能になります。
    複数データソースのJOIN などを行う場合には大変便利です。

    【応用編】SharePoint Excel Services データとSQL Server データを組み合わせた高度な活用例

    リンクサーバーの真価は、異なるデータソースを組み合わせた分析や処理にあります。以下に実践的な活用例をご紹介します。

    複数データソースの結合(JOIN)によるデータ統合

    SELECT
      s.customer_id,
      s.customer_name,
      o.order_id,
      o.order_date,
      o.total_amount
    FROM
      Sales.Customers s
    JOIN
      リンクサーバー名.CData SharePoint Excel Services Source Sys.SharePoint Excel Services.Orders o
    ON
      s.customer_id = o.customer_id
    WHERE
      o.order_date > '2023-01-01'
    ORDER BY
      o.total_amount DESC
    

    このクエリ例では、SQL Server内の顧客データとSharePoint Excel Services 内の注文データを顧客IDで結合し、2023年以降の注文を金額順に表示しています。

    おわりに

    このようにCData ODBC ドライバと併用することで、SharePoint Excel Services を含む270を超えるSaaS、NoSQL データをSQL Server に連携できます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービ スやNoSQL と合わせて活用してみてください。

はじめる準備はできましたか?

SharePoint Excel Services ODBC Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

SharePoint Excel Services Icon SharePoint Excel Services ODBC Driver お問い合わせ

Excel Services ODBC ドライバーは、ODBC 接続をサポートする任意のアプリケーションからリアルタイムなExcel Services データに接続できるパワフルなツールです。標準のODBC ドライバーインターフェースを使用して、データベースのようにSharePoint サーバーでホストされているExcel スプレッドシートデータにアクセスし、データ連携を実行できます。