😀

SharePoint Online にある Excel 内のテーブルデータを Graph API で取得してみた

に公開

SharePoint Online にある Excel 内のテーブルデータを取得したい場合、Power Automate や Logic Apps の Excel Connector はとても便利です。コネクターの中身は、推測にはなりますが、認証情報の保持と Microsoft Graph API の実行だと思っています。そこで、Azure CLI の REST 実行を使って、同じことができるか試してみました。

検証用の Excel 例

table1 という名前のテーブルを用意しました。

spo-excel-01.png

環境変数をセット

bash
# テナント名
tenant=mnrsdev

# テナント ID
tenantid=00000000-0000-0000-0000-000000000000

# SharePoint Online のサイトパス
sposite=/sites/private

# Excel のファイルパス
filepath=/General/test.xlsx

テナントにログイン

bash
# テナント ID を指定してログイン
az login -t $tenantid

SharePoint Online のサイト ID を取得

bash
siteid=$(az rest \
  --uri "https://graph.microsoft.com/v1.0/sites/${tenant}.sharepoint.com:${sposite}" \
  --query id \
  --output tsv)

Excel のテーブルデータを取得

bash
az rest \
  --uri "https://graph.microsoft.com/v1.0/sites/${siteid}/drive/root:${filepath}:/workbook/tables/table1/range" \
  --query values

[
  [
    "name",
    "type"
  ],
  [
    "james",
    "a"
  ],
  [
    "naomi",
    "b"
  ]
]

参考

https://learn.microsoft.com/ja-jp/graph/api/table-range?view=graph-rest-1.0&tabs=http

Discussion