検証で SharePoint リストに大量のデータを登録することがあったのですが、手作業で登録したくないな~と思いました。そこで、Power Automate を使って Excel ファイルのデータを一括登録してみました!
比較的、簡単に作成できたので、SharePoint リストに一括登録をしたいとお考えの方は、ぜひ参考にしていただけると嬉しいです!
1.事前準備
(1)Excel ファイルの準備
「.xlsx」形式のファイルに、テーブルを作成します。
それぞれの列名は、リストの列名を同じにしておくと、フロー作成時に判断しやすくなるのでおすすめです。
(2)OneDrive 上にファイルをアップロード
自分の OneDrive 上にファイルをアップロードします。
2.フローの作成
今回の本題であるフローを作成していきたいと思います!
(1)フローの全体像
フローの全体像としては、このようになります。
やっていること自体は難しくないのですが、Excel データの最大取得数の制限を回避するために、Do until を使っており、複雑そうに見えています、、、
一応、手順通りに作っていただけたら大丈夫なようにしてあるつもりです!少し大変そう~って思ってしまうかもしれませんが、諦めずに一緒に頑張りましょうっ💪
(2)フローの作成手順
①.「手動でフローをトリガーします」をトリガーに選択します。
[入力の追加]をクリックして、入力の種類に「数」を選択します。
②.リストに登録した行数をカウントするための変数を作成します。
項目 | 設定 |
---|---|
名前 | カウント |
種類 | 整数 |
値 | 0 |
③.トリガー時に入力された Excel の総行数と、②で作成したカウント変数の値が一致するまで繰り返し処理を行うように設定します。
項目 | 設定 |
---|---|
左の値 | 動的なコンテンツ:変数 – カウント 値:@{variables(‘カウント’)} |
条件 | 次の値に等しい |
左の値 | 動的なコンテンツ:手動でフローをトリガーします – 行数 値:@{triggerBody()[‘number’]} |
④.一括登録をする元データを取得します。
スキップ数を設定してあげるのが、今回のポイントとなります。これについては、後で詳しく記載したいと思います。
項目 | 設定 |
---|---|
場所 | OneDrive for Business |
ドキュメント ライブラリ | OneDrive |
ファイル | アップロードしたファイル |
テーブル | 設定したテーブル |
スキップ数 | 動的なコンテンツ:変数 – カウント 値:@{variables(‘カウント’)} |
⑤.④で取得した複数行のデータを、一行ずつ処理を行うように設定します。
項目 | 設定 |
---|---|
以前の手順から出力を選択 | 動的なコンテンツ:表内に存在する行を一覧表示 値:@{outputs(‘表内に存在する行を一覧表示’)?[‘body/value’]} |
⑥.Excel のデータを SharePoint に登録していきます。
項目 | 設定 |
---|---|
サイトのアドレス | 一括登録したいリストがあるサイト |
リスト名 | 一括登録したいリスト |
Title | このリスト列に登録したい Excel の列 |
累乗(カスタムで作成した列) | このリスト列に登録したい Excel の列 |
⑦.リストにレコードを1つ登録したら、カウント変数も1ずつ追加されるように設定します。
項目 | 設定 |
---|---|
名前 | カウント(作成した変数) |
値 | 1 |
3.実行方法と結果
作成、お疲れ様でした!
実際に一括登録を行うためのフローを実行していきます!
①.フローの画面を開き、[実行]をクリックします。
②.登録する Excel の行数を入力して、[フローの実行]をクリックします。
③.フローの実行が完了するまで待ちます。
(今回、1000 行登録したところ 9 分半くらいかかりました)
④.全データが正常に登録されました!
4.躓きポイント
これくらいなら躓かずにスムーズに作成できるだろうと軽い気持ちで作り始めたのですが、1ヶ所ハマってしまったので共有します。
『表内に存在する行を一覧表示』というアクションにより、Excel テーブルのデータを取得しています。このアクションには、1回で取得可能な行数は、256行までという制限があります。この制限を知らないまま作り始めたため、1000 行登録したいのに 256 行までしか登録できていない…ということが起こりました。
回避するには、『スキップ数』という項目を構成してあげる必要がありました。ここの数を 256 にすると、257 行目からのデータが取得されます。そこで今回は、この『スキップ数』に登録完了している行のカウント数を指定することにより、回避するようにしてあります。
このようなフローを作成することで、SharePoint リストに Excel ファイルの内容を一括で登録することができます!
今回の検証では、1000 行の登録で、約 10 分かかりました。思っていたよりは、時間がかかったかなという印象でした。とはいっても、自動で登録されていっているので、この間に他の作業ができていいですよね!
フロー自体も制限事項さえわかっていれば、そこまで難しいものではないので、今まで手動で大量にデータを登録されていた方は是非試してみてください😊