SharePointリストへの大量データインポート

Cloudflareロゴ画像

SharePointリストには使いやすいデータインポートの機能がありませんが、システム移行などで大量にデータを投入したい場合にどうするべきか解説します。

2024年5月11日

SharePointOffice365マイクロソフト

SharePointリストのインポート問題

MS Access等で作ったシステムをSharePointに移行する時に、数千件単位でSharePointのリストへデータを移行しなければならない場面があります。ですが、SharePointのページをどこを探しても、インポートに関するメニューが見当たりません。これでは1件ずつ手入力するのは現実的ではないので、何か方法がないかと調べてみました。

新規リスト作成のとき

SharePointリストを新規作成するときに、ExcelやCSVから項目列を自動作成するオプションがあります。このときにファイルに含まれるレコードもリストに登録されてるので、一見してインポートできるように思われます。 ただし、この機能はすでに列項目が決まっている既存リストにデータ追加できないので、リストを作り込んでテストをしてからデータをインポートしたい場合には使えません。

ExcelCSVからリスト作成

Power Automateを使う

Power Automate(デスクトップ版ではなくクラウドで動く方)にはExcel Onlineからワークブックを取得するアクションやSharePointリストに項目を新規作成するアクションがあります。これらを組み合わせると、Excelファイル内のレコードをすべてリストに登録するフローができあがります。 現実的に使える方法ですが、更新や削除をしたい場合は新たにフローを作らないといけないため、汎用性に欠けます。対象リストが増えるとフローの数も増えるので、後々管理しにくくなってしまいます。

Power Automateのフロー

MS Accessと連携

オススメはMS AccessのリンクテーブルでSharePointリストを開く方法です。これであればAccessのテーブルとしてリストに追加、変更および削除ができるのでExcelと同じような感覚でデータを管理できます。もちろん一括インポートも可能です。

やり方は外部データメニューから新しいデータソースを展開して、オンラインサービスからSharePointリストを開きます。

MS Accessの外部データメニュー

外部データの取り込みダイアログが表示されるので、リストが保管されているSharePointサイトを選択し、リンクテーブルを作成してソースデータにリンクするをチェックしてから次の画面に進みます。

外部データの取り込み

サイト内のリストが一覧で表示されるので、リンクしたいリストをチェックして次へ進みます。

外部データの取り込み、リスト選択

リンクテーブルが作成されて、ダブルクリックして開くとリストのデータがテーブル形式で表示されます。色タグコンプライアンス資産IDなど不要な列も含まれてしまっています。クリップのマークが付いた列はリストの添付ファイルです。これらの列を移動し、列の順番をExcel等の移行元データと合わせて、コピー&ペーストすると既存リストにデータをインポートできます。

リンクテーブルの完成

まとめ

SharePointリストはPower AutomateやPower Appsと連携したトランザクション処理が使いやすいのですが、大量のデータを処理するバッチ処理が苦手と思っています。 システム移行期のデータインポートの場合はMS Accessを使って、オンラインで別システムからデータ同期するようなニーズにはPower Automateというような使い分けが考えられます。