SharePointのリストで列の内部名を利用しやすいまま、データの一括登録をする方法

# はじめに

Workato などの iPaaS 製品を利用する場合に、簡易的なデータベースとして SharePointのリストを利用することも多いと思います。

[こちらの記事](https://qiita.com/ykkoba/items/b533b654af81fe37b50a)では既存の Excel ファイルや CSV ファイルをインポートしてリストを作成することでデータを一括登録する方法をご説明しました。この方法では列の内部名が自動採番されてしまい、利用しやすい名前にできないという問題がありました。

この記事では、列の内部名を利用しやすい名前にしたうえで、データの一括登録をする方法についてご説明します。

# Excel のテーブルをエクスポート

SharePoint のリストは Excel のテーブルをエクスポートして作成することもできます。Excel のテーブルについては[こちらの記事](https://qiita.com/ykkoba/items/b533b654af81fe37b50a)を参照してください。

Excelのテーブルのセルを選択し、「テーブルデザイン」メニューから「エクスポート」「テーブルを SharePoint リストにエクスポート」を実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/7ea14781-fdb7-92cc-8df0-a9f90e660085.png)

「アドレス」にリストを格納したいサイトの URL を設定し、リストの「名前」を入力して「次へ」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/3cd83263-03af-15b3-4dde-b8acc3c7399c.png)

列とデータ型の割り当てが表示されます。インポートの時とは違い、ここではデータ型の変更はできません。「URL」のカラムを見ると、「ハイパーリンク」が割り当てられています。「ハイパーリンク」の場合、リスト作成後に変更できないため、ここではいったんキャンセルしてデータを修正します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/e54a60e7-b209-029d-1557-2331b4e80df0.png)

「URL」のカラムを選択し、右クリックメニューから「ハイパーリンクの削除」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/134cef67-0d76-08c2-dbcb-eaf858017800.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/aee1fc7d-acc4-35bb-46c2-d5e40c7e7b74.png)


再度エクスポートを実行すると、今度は「URL」のカラムが「テキスト（単一行）」になりましたので、そのままエクスポートします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/83c17df2-4c57-0747-173e-ad87b4a0f13c.png)


エクスポートが完了すると、データが登録された状態でリストが作成されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/b9e02b6e-fe75-6761-d9b4-db2f5700c12e.png)

列の内部名を確認してみます。

エクスポートで作成した場合、英数字の名前はそのまま内部名として設定されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/28762500-e161-db1d-a813-932686a9b236.png)

なお、エクスポートでリストを作成した場合、通常の方法で作成したときとは違う点がいくつかありますので、注意が必要です。

1. 既定のビューの設定が異なる
    - 初期状態でグリッドビューでの編集が有効になっている
    - 「種類」列が表示されている
2. コメント機能が無効になっている

1 については、「新しいビューを作成する」で作成した新しい「パブリック ビュー」を「既定のビュー」にしたうえで、「種類」列を非表示にすることで、通常の方法で作成した場合と同様のビューにすることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/3e067fd9-d0b8-4d79-3f7e-4b2e3f70d7ff.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/8b8b6f43-6bf3-d9a7-cc43-06635bb35143.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/db0198ef-1890-d8ff-9359-4e59c041961d.png)


2 については、いまのところ対応方法はないようです。
本来であれば、「列の詳細設定」の画面の「添付ファイル」と「フォルダー」の間に「コメント」が表示されるはずですが、表示されません。
コメント機能を利用したい場合は、他の方法で作成する必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/78e5a1eb-ed87-a858-4eda-f32b4a29b755.png)


また、「複数行テキスト」の列にデータがある場合にも注意が必要です。

見た目上、期待通りのデータが格納されているように見えますが、編集状態にすると、実際には改行が「\<BR\>」に変換されていて HTML として格納されていることがわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/c2e5dedc-2901-6e3a-61b2-fab1bfc23d61.png)


「列の編集」の「その他のオプション」で「拡張リッチテキストを使用」をオフにすることで、通常のテキストに戻すことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/bebebe7b-5098-928d-35fc-9fe5010a6115.png)

ただ、このとき、改行の情報は失われてしまいます。そのため、後述の Excel のデータの貼り付けなどを利用して、回避する必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/202fc2fc-c65c-7884-331e-259fd61a50ea.png)


# Excel のデータを貼り付け

SharePoint のリストは実は Excel のデータを貼り付けることができます。

ただし、貼り付けを行うときの操作には多少コツが必要となります。

1.「グリッドビューで編集」状態にします。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/420fa2b2-60a8-d2b8-6bf5-0a764f559eb7.png)
2. 貼り付け先のセルをフォーカス状態にします。データを追加したい場合は、「＋新しいアイテムを追加」をクリックして貼り付け先の行を作成してから、セルをフォーカス状態にします。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/41c1054c-f8ab-6533-7043-41021e0f1c5c.png)
3. Excel からコピーしたデータを貼り付けます。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/e8670063-f55b-81e3-2dd9-f69c70c89973.png)


先程、コツと書きましたが、下記のような注意点があります。

セルが編集状態になっていると、全てのデータが編集状態のセルに貼り付けられるため、期待した結果が得られません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/289dc091-8b30-a502-63bc-2ca7efb4cf89.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/4169e749-7edc-07c4-b7c3-8b625e9191b5.png)

セル以外にフォーカスがあると貼り付けられません。見た目上セルにフォーカスが当たっていても、実は別の所にフォーカスがあるケースもあります。この図の状態はセルにフォーカスが当たっているように見えますが、実際にはテーブル名の横の空きスペースにフォーカスがあるため、データを貼り付けられません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/52b537d9-ae1c-cf50-032e-cf9d55038cfb.png)

また、この方法は大量データの取り扱いには向いていません。

[ソフトウェアの境界と制限 (SharePoint Server 2016 および 2019)](https://learn.microsoft.com/ja-jp/sharepoint/install/software-boundaries-limits-2019)には「一括操作に最大100個までのアイテムを選択できます。」とありますが、貼り付け時にはこの制限はかからないようです。

しかしながら、大量のデータを扱う場合、レスポンスが悪くなったり、不安定になったりするため、100件程度ずつ数回に分けるか、Workato を利用してインポートすることをおすすめします。Workato を利用した CSV ファイルのインポートは[こちらの記事](https://qiita.com/ykkoba/items/08e4a7038dd229f67ac1)を参考にしてください。

# まとめ

まとめると、以下のようになります。

- SharePoint では、Excel ファイルのテーブルをエクスポートしてリストが作成できる
  - 列の型は自動で判別されるため、必要に応じて事前にデータの整形が必要
  - 複数行テキストについては、データが HTML に変換されるため注意が必要
  - テーブルのカラム名を英数字にしておくことで、列の内部名を利用しやすいものにできる
  - 通常の方法でリストを作成した場合と一部差異があるため、注意が必要
- SharePoint のリストには Excel のデータを貼り付けられる
  - 大量データの取り扱いには適していない

# おわりに

この記事では、Workato などで SharePoint のリストを利用するために、内部列名をわかりやすくしたままデータを一括登録する方法についてご説明しました。

SharePoint には便利な機能が多くありますが、作り方によって一部動作が異なる場合もありますので、注意が必要です。

Workatoの導入・導入後の活用などでお困りの場合、Workatoリセラーにご相談する方法もございます。お困りごとがございましたら、認定リセラーの[日立ソリューションズ](https://www.hitachi-solutions.co.jp/rpa/sp/products/workato/?utm_source=sns&utm_medium=qiita&utm_campaign=["62c7358305be7869372a"])へ是非ご相談ください。

# 参考リンク

* 株式会社 日立ソリューションズ
    * [Workato ご紹介サイト](https://www.hitachi-solutions.co.jp/rpa/sp/products/workato/?utm_source=sns&utm_medium=qiita&utm_campaign=["62c7358305be7869372a"])

* Microsoft 公式サイト
    * [Excel テーブルを SharePoint にエクスポートする](https://support.microsoft.com/ja-jp/office/excel-%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%82%92-sharepoint-%E3%81%AB%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B-974544f9-94bc-4aa8-9159-97282d256dab)