10
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PowerAutomateでSharePoint上のExcelをコピーして表に行を追加する

Posted at

やりたいこと

  • SharePointのドキュメント上にテンプレートとなるExcelがある。
  • テンプレートのExcelにはテーブルが存在する(テーブル名=テーブル1)。
  • そのExcelをコピーして新規作成する。
  • コピー先のExcelのテーブルに行を追加する。
  • 以上をPowerAutomateで行う。

やり方

テンプレートとなるExcelの準備

今回はShared Documents/20200626というフォルダ配下に「test-template.xlsx」という名称のExcelを作成しました。
test-template.xlsxには下図の列を持った「テーブル1」というテーブルを持っています。

Excel Onlineでテーブルを作成すると自動的にこの名称になります。ただ、Excelアプリで表示しないとテーブル名が分からない。
このExcelを適当な場所にコピーして行を追加します。

PowerAutomate

ファイルのコピー

SharePointの「ファイルのコピー」アクションを設定します。

「Shared Documents/20200626」に「コピー先」というフォルダを作成して、ここをコピー先のフォルダとしました。

行を追加?

次にExcelの「表に行を追加」アクションで行を追加したいところですが、表に行を追加アクションだと行を追加するExcelは固定である必要があります。今回は可変なのでひと工夫必要です。

ブックIDを取得する

拙著のPowerAutomateを使ってSharePoint上のExcelのテーブルを取得するを参照してブックIDを取得します。紹介したページではThumbnailの値が必要ですが、上記のファイルのコピーアクションではThumbnailは返却されないので、「ファイルのプロパティを取得」アクションを使って取得します。

IDに設定しているのは、ファイルのコピーの戻り値の「ItemId」です。これを実行するとThumbnailが返却されるので、上記ページを参照してブックIDを取得します。

表に行を追加

Excelのテーブルに行を追加するには「表に行を追加」アクションを使用しますが、

表に行を追加アクションは、行を追加するExcelは固定されている前提です。なので、上図だとテーブルの列が表示されています。
ただ今回の場合はExcelは可変なので、列名は表示されず下図のようになってしまいます。パラメータ「テーブル」はカスタム値として設定しています。

パラメータ「item」にはJSON形式で設定することができるので、以下のように設定します。

これで行を追加できます。これと同じようにして行の更新も以下のようにしてできます。

パラメータ「キー列」にはキーとなる列名をカスタム値として入力します。SQLで言うとことろのPrimaryKeyとなる列名に相当しますかね。パラメータ「キー値」は、そのPrimaryKey値の値になる部分です。パラメータ「item」に変更する列名と値をJSON形式で設定します。

まとめ

やっぱりブックID取得部分がスマートではないのでなんとかしたい。

10
17
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?