技術情報ブログ
Power Platform
2021.07.14

Power AutomateでExcelデータをSharePointにインポートするために考えること(第2回)

こんにちは。アーティサン株式会社の小刀稱(ことね)です。

本シリーズでは、私が実際にPower Automateを用いて、「ExcelをSharePointリストにインポートする」フローを作成していきます。また、作成の際に学んだ点や躓いた点を中心に紹介いたします。

Power Automateでどんな事ができるのか知りたい、実際の作成方法を知りたい、という方に向けた記事です。

前回はExcelのデータをSharePointにインポートする手法と、それぞれのメリット・デメリットについて紹介しました。

第1回目の内容はこちらを参照ください。

Power Automateが最適?ExcelデータをSharePointリストにインポートしたい時に考えること

今回からは、早速Power Automateを用いてフローを作成していきます。

 

インポートするExcelデータ

今回インポートするExcelデータを以下に示します。

※SharePointリストの各列もExcelと同様に定義しておきます。

ファイル名
test.xlsx
テーブル名
tableTest
列名(形式)

String(文字列)

Number(数値)

Date(日付、yyyy/MM/dd)

DateTime(日付、yyyy/MM/dd hh:mm)

Power AutomateでインポートするExcelデータ

 

Excelデータのテーブル化

Power Automateでは、Excelデータはテーブルしか扱うことができません。

よって、Excelを事前にテーブル化させておく必要があります。

ちなみに、Power Automateに限らず、テーブル化されていないデータは、プログラムで扱う際に開発難易度が跳ね上がってしまいます。

これからの時代、あらゆるデータはプログラムで利用されることを前提として考え、Excelにデータを入力する時点で、テーブル化できるように整理しておくことをお勧めします。

Excelをテーブル化する手順は以下です。

  • テーブル化したい範囲を選択します。
  • ホーム → テーブルとして書式設定 の中から任意のスタイルを選択 します。
  • ポップアップ画面(テーブルの作成)のOKを選択します。 Power AutomateでインポートするExcelデータをテーブル化
  • テーブルデザイン → テーブル名を「testTable」に変更します。

 

フローの作成

準備が整いましたので、早速Power Automateを用いてフローを作成していきましょう。

Power AutomateでExcelデータを扱う際には、「Excel Online(Business)コネクター」を利用します。

また、本コネクターに含まれる「表内に存在する行を一覧表示」アクションを用いることで、指定したテーブルの値を取得します。

Power Automateで使用するアクション「表内に存在する行を一覧表示」

「表内に存在する行を一覧表示」アクションを見ると、「場所」「ドキュメントライブラリ」「ファイル」「テーブル」という4つの項目を設定する必要がありそうです。

そこでSharePointのドキュメントライブラリ(名称:Excelファイル)を作成し、Excelデータを保存しました。その後、以下のように値を設定しました。

Power AutomateでExcelデータを扱うための「表内に存在する行を一覧表示」設定

いずれの項目も、右端のアイコンをクリックすると候補が表示されるため、設定は非常に簡単です。

Excelのテーブルデータを取得できたので、続いてSharePointリストにインポートするためのアクションを追加します。

Power AutomateでSharePointを扱う際には、「SharePointコネクター」を利用します。また、本コネクター内の「項目の作成」アクションを用いることで、取得したテーブルデータをSharePointリストに追加します。

設定した値は以下です。

Power Automateで「SharePointコネクター」の「項目の作成」を「Apply to each」で繰り返し処理

SharePointリストの各列に合わせて、データをマッピングしました。

Number列の形式は数値ですが、「表内に存在する行を一覧表示」アクションで取得すると、文字列として認識されます。

int()関数を用いて文字列から数値へキャストしています。

式:int(items(‘Apply_to_each’)?[‘Number’])

 

また、「項目の作成」アクションにてデータをマッピングすると、自動的に「Apply to each」アクションで囲われたと思います。

これは、「表内に存在する行を一覧表示」アクションで、複数行のデータを取得したためです。

「Apply to each」アクションにて、取得したデータ行数分の処理を実行します。(テーブルデータが10行分ある場合は、10回「項目の作成」アクションが実行される。)

はい、フローが完成しました!

今回作成したフローの全体像は以下です。少ないアクション数にて作成することができました。

Power AutomateでSharePointにExcelデータをインポートするフロー全体像

 

フローの実行

それでは作成したフローを実行してみましょう。

保存したExcelファイルの横にある三点リーダーから自動化→作成したフロー名をクリックすることで実行できます。

上記手順にてフローを実行してみましたが、SharePointリストには何もインポートされていませんでした。

そこで、フローの実行履歴を確認すると「失敗」の文字が・・・

内容を確認すると、SharePointリストとExcelデータのDate列の形式が異なるため発生しているようです。

Power Automateフロー実行時のエラー内容

 

少し長くなってしまいましたので、今回はここまでにしたいと思います。

次回は発生したエラーの内容とその対処方法についてお伝えしていきます。

ここまで読んでいただき、ありがとうございました。

小刀稱知哉

小刀稱知哉

私はPower Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当しております。

Twitter
facebook
シェアする
記事カテゴリ
最新記事
Power PlatformPower AutomateSharePoint
2021.07.23

Power AutomateでExcelデータをSharePointにインポートするために考えること(第3回)

c#
2021.07.21

C# アトリビュートを用いたバリデーションでコーディングの保守性・可読性の向上を実現する

Power PlatformPower AppsSharePoint
2021.07.16

Power AppsとSharePoint連携:SortByColumns関数で日本語列をソートする際の注意点

Power PlatformPower AutomateSharePointExcel
2021.07.14

Power AutomateでExcelデータをSharePointにインポートするために考えること(第2回)

Angular
2021.07.07

Angular MaterialのMatTable でデータ構造の動的な変更

PageTop
ページトップに戻る