【Power Automateを使えば、Sharepointリストを一気に操作することができます!】
Sharepointoリストはエクセルのように大量にデータを追加できない?そう思われている方も多くいらっしゃることと思います
実はPower Automate/クラウドフローを使えば簡単にエクセルから大量データを追加できます
但し、注意点も多いです
エクセルからPower Automateを使ってSharepointリストに流す方法を知っていても、256行で処理が止まってしまったという経験をされた方も多いと思います
行数の制限を回避する方法も後ほど解説したいと思います
目次
自動追加フロー
準備するもの
追加するデータが含まれたエクセルファイルをSharepointのドキュメント内、もしくはOneDrive内に用意してください
但し、必ずテーブル化を行っておいてください
名前は後で参照するので、分かりやすいものが良いです
デスクトップの場合と違い、テーブル化の場合はショートカットキー/Ctrl+Tが使えないので挿入タブから操作を行ってください
Power Automateフロー
トリガー
「手動でフローをトリガーする」をトリガーにし、いつでもフローを起動できるようにします
エクセルファイルからデータ取得
「表内に存在する行を一覧表示」アクションにて追加するデータを取得します
アクション内では、ファイルとテーブルを指定します
リストへのデータ追加
取得したエクセルデータのリストへの追加は、Sharepointコネクタの「項目の作成」アクションで行います
こちらのアクションにて、取得したエクセルデータを列単位で指定します
下の画像のように、客期コードにカーソルを置くと現れる動的コンテンツから実際の指定は行います
一つでも動的コンテンツを指定すると、自動的に繰り返し処理/Apply to eachが適用されます
つまり、このアクションではN行エクセルデータを取得したらN回項目の作成を繰り返し、リストに追加を行っていきます
注意点
実は処理行数に制限があり、エクセルの追加行数が256行より多い場合でも処理が「256」で止まります
この場合は設定の変更で上限数を増やすことができます
改ページを「オン」にし、行数を増やします
理論上は10万行までは指定できるようです
但し、制限を外せてもかなりパフォーマンスは落ちるケースがありますのでご注意を
(参考)256行制限のまま大量の行数に対応するフロー
最後に、1度にエクセルから取得する行数を「256」に絞りながら処理するフローを紹介します
下の図のように、うまく取得位置をスキップさせながら制限行数の範囲内で処理を繰り返していきます
スキップ数の箇所は変数にして可変にするのもポイントです
こちらの変数は繰り返し処理/Do Untilの中で、繰り返し256行を増やしていきます
Do until内では別途変数(プール値:trueで初期化)を使用し、falseになるまで処理を継続するようにします
こちらの終了判定する変数は、処理の残り必要行数が256未満の時にfalseにします
処理の残り必要行数は「length関数」を使用して取得します
length(body(‘表内に存在する行を一覧表示’)?[‘value’])
残りの行数を取得し、256行未満であれば最後の「項目作成」を行い、変数をfalseに変えます
<まとめ>
今回はPower Automateを使用してエクセルのテーブルからまとめてSharepointリストにデータを追加する方法を解説しました
フロー自体は簡単なのですが、行数が増えてくると扱える行数に制限がかかったりするのが厄介ですので、そちらの対策も解説させて頂きました
最後に、
フローの実行が長引くと「フローがタイムアウト・・・」と出るケースがあります
但し、下の画面/実行履歴を確認すると実際にはまだ動いていることがありますので注意が必要です
この疑似的なものも含めてタイムアウトを防ぐために、下の設定を変えることで対策が行えます
この設定内に「期間」を設定する箇所があります
以下に記載例も示しておきます
PT1M ー1分
PT1H-1時間
コメントを残す