はじめに
今回はSPOリストへデータをインポートする方法のひとつとしてエクセルからインポートする際の
対応について軽く書きます。備忘録的なものです。
エクセルインポート時は新規リスト作成時のみ
よく聞かれるのですが、エクセルからインポートしてリストを作成する場合、新規リストを作成とセットになります。
既存のエクセルデータやマスタデータなどをエクセルからSPOリストにしたかったりする場合に対応します。
そのため、既存のリストにデータを一気に追加したい。という要件には合いません。
その場合はSPOのグリッドビューでちょこちょこ貼り付けて入れるか、Power Automate(APIコール注意、Batch処理が出来れば大丈夫だが)、管理系としてはPowerShellでやるのが手早いですね。
今回は検証用に大量データマスタ(5万件)を入れる際にこれでやったら楽かなーと思ってやってみた次第です。
思ったより遅くないよなーと思ったのでその記録です。
TIPSPowerShellでバッチ処理で既存リストへ一括登録するサンプルは、MVPの太田さんの記事が大変重宝します!
PowerShell(PnP含め)を使用できる環境、立場の方であればこちらご参考ください。
PnP PowerShell を利用して SharePoint Online のリストにアイテムを作成するシリーズ。今回は、大量にアイテムを登録するときに活躍する、Batch 処理の実行方法についてです。シリーズの過去記事は、下記のリンク先
エクセルからSPOリストインポート(新規作成)は2パターン
エクセルからデータを取り込むには2パターンあり、SPO上から選択するかエクセル側からエクスポートするかです。
この辺りは以下記事でそれぞれのアプローチでの違いについても書いてもらってますので是非ご参考ください!
また、関連してSPOの内部名(エクセルインポート時にも影響)については、自身の以下記事で書いてますので、併せてご参考ください。
SharePointリスト 列の内部名と調べ方(日本語、エクセル取込み)
SharePoint リスト(Microsoft Listsとしても同様)列の内部名(InternalName)については作り方によって見づらいものになります。その辺と調べ方になります。 エクセル取込み時やDataverseの場合などと絡めて記事にしました。...
エクセルからのインポートの速度
ということで、今回エクセルからインポートするパターンでやってみました。
件数は5万件、2MB ほどです。
列は6列位の容量としては軽い内容ですがデータ量は多いという感じ。
- データを作成する
- テーブル化する
- 上部「テーブルデザイン」を開く
- 「エクスポート」>「テーブルをSharePointリストにエクスポート」をクリックする
- アドエスにSPOサイトを指定する
- 名前に任意の名前にする
- 次へをクリックしてデータ型など確認して「完了」
そのまま待機しておきます。
NOTE数十~数百ならすぐに完了しますが、今回は5万件を対応しているので、かなりかかります。
ファイルは固まったようになりますので閉じてしまわずに後ろに置いて置くなどであまり触らないようにしましょう。
登録完了までの時間(感覚的には早いんじゃ?)
SPO側で登録されていることが順次確認できる
対象リストは出来ているのでアクセスして件数を確認出来ます。
以下はリストの中身
★エクセルからエクスポートでインポートした際は初期はグリッドビューで表示される仕様となっています。
※SPO側からインポートだと普通のビュー表示
サイトコンテンツから件数を確認
21:08からスタートして定期的に確認した時間帯です。環境差などありますが、
ざっと1万件4,5分で、5万件で25分位で完了しました。
- 1万件 :4分くらい
- 2万件程度:10分くらい
- 3万件程度:15分くらい
- 5万件:24分
完了するとエクセル側にもサイトリンク、OKボタンが表示されます。
約25分待てばチャンと完了しましたので途中で止めずに待っておきましょう。
NOTE途中スロットルが入っている感じ(システムに止められて遅延する)感じもなかったんですが、件数によって発生するかなどは未検証です。ご了承ください。
列の種類の調整はあんまり出来ない?
ちょっと詳しくはみれていませんが、試しに日付列にしたり、カテゴリ列を選択肢っぽくしてみました。
・日付列にしてみた →日付型となった
・数値 →数値型となった
・入力規則でリストからA,B,Cのみとする設定 →選択肢にはならずにテキスト列だった
NOTEということで基本的な型しか対応しないのかもしれません。
※この辺り細かく調査出来てないのでご存じの方いらっしゃったら教えてください。
列の内部名はSPO上と同様(エンコードされる)
エクセルからエクスポートでのインポートの場合は英語列名であればそのまま使ってくれます。
日本語列でインポートしたらSPO上での作成同様にエンコードされたものとなりました。
※SPO側からインポートする場合はfield_1、field_2となる設計となっている(なぜだか不明ですが)
おわりに
ということで、たまたま大量サンプルデータをSPOへアップするタイミングがあったので
エクセルでのインポート時の時間や挙動など備忘録的に確認してみました。
思ったより早いかなと思うので、先にシンプルなマスタデータを登録するにはエクセルからインポート良いですね!(既存リストにも出来れば最高なのにな。。 それでは!
関連
大量データマスタ プルダウン表示について(コンボボックス)
大量データマスタ プルダウン表示について(コンボボックス)
今回は他のマスタテーブルのデータをプルダウン系で表示する際のTipsです。 少量マスタの場合は対して気にせずよいですが、大量データのマスタを参照する際は制限が出てくるので そのあたりの実装のサンプルをご紹介します。...
SharePointリスト 列の内部名と調べ方(日本語、エクセル取込み)
SharePointリスト 列の内部名と調べ方(日本語、エクセル取込み)
SharePoint リスト(Microsoft Listsとしても同様)列の内部名(InternalName)については作り方によって見づらいものになります。その辺と調べ方になります。 エクセル取込み時やDataverseの場合などと絡めて記事にしました。...
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
コメント