SharePointリストへの大量データインポート
SharePointリストには使いやすいデータインポートの機能がありませんが、システム移行などで大量にデータを投入したい場合にどうするべきか解説します。
2024年5月11日
SharePointリストのインポート問題
MS Access等で作ったシステムをSharePointに移行する時に、数千件単位でSharePointのリストへデータを移行しなければならない場面があります。ですが、SharePointのページをどこを探しても、インポートに関するメニューが見当たりません。これでは1件ずつ手入力するのは現実的ではないので、何か方法がないかと調べてみました。
新規リスト作成のとき
SharePointリストを新規作成するときに、ExcelやCSVから項目列を自動作成するオプションがあります。このときにファイルに含まれるレコードもリストに登録されてるので、一見してインポートできるように思われます。 ただし、この機能はすでに列項目が決まっている既存リストにデータ追加できないので、リストを作り込んでテストをしてからデータをインポートしたい場合には使えません。
Power Automateを使う
Power Automate(デスクトップ版ではなくクラウドで動く方)にはExcel Onlineからワークブックを取得するアクションやSharePointリストに項目を新規作成するアクションがあります。これらを組み合わせると、Excelファイル内のレコードをすべてリストに登録するフローができあがります。 現実的に使える方法ですが、更新や削除をしたい場合は新たにフローを作らないといけないため、汎用性に欠けます。対象リストが増えるとフローの数も増えるので、後々管理しにくくなってしまいます。
MS Accessと連携
オススメはMS AccessのリンクテーブルでSharePointリストを開く方法です。これであればAccessのテーブルとしてリストに追加、変更および削除ができるのでExcelと同じような感覚でデータを管理できます。もちろん一括インポートも可能です。
やり方は外部データ
メニューから新しいデータソース
を展開して、オンラインサービスから
、SharePointリスト
を開きます。
外部データの取り込み
ダイアログが表示されるので、リストが保管されているSharePointサイトを選択し、リンクテーブルを作成してソースデータにリンクする
をチェックしてから次の画面に進みます。
サイト内のリストが一覧で表示されるので、リンクしたいリストをチェックして次へ進みます。
リンクテーブルが作成されて、ダブルクリックして開くとリストのデータがテーブル形式で表示されます。色タグ
やコンプライアンス資産ID
など不要な列も含まれてしまっています。クリップのマークが付いた列はリストの添付ファイルです。これらの列を移動し、列の順番をExcel等の移行元データと合わせて、コピー&ペーストすると既存リストにデータをインポートできます。
まとめ
SharePointリストはPower AutomateやPower Appsと連携したトランザクション処理が使いやすいのですが、大量のデータを処理するバッチ処理が苦手と思っています。 システム移行期のデータインポートの場合はMS Accessを使って、オンラインで別システムからデータ同期するようなニーズにはPower Automateというような使い分けが考えられます。