1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Automate/Office スクリプト】SharePointリストのデータをExcelの表に行追加したい[25年3月時点]

Last updated at Posted at 2025-03-03

【概要】PowerAutomateとExcelスクリプトでSPOリストを取得

SharePointリストのデータを取得し、シェアポイントのドキュメントにあるExcel(Online)ファイルのテーブルに流しこみたい。
(できるだけ、早い処理)

他のやり方として、シェアポイントリストのデータを取得してAutomateのExcelコネクタの「表に行を追加」を使う方法もあるけど、処理時間がかかりすぎて使い物になりませんでした。

1.SharePointのリストの用意

シェアポイントのサイトコンテンツに新規でリストを作成してください。
今回のサンプルとしては、
・No.(数値)
・名称(Title:テキスト)
・類別(テキスト)
の3つの列名です。この辺りは任意の列名、列の種類を設定ください。

2.SharePointドキュメントにExcel作成

シェアポイントのドキュメントにExcelファイルを作成。
シート名は「sheet1」
テーブルも作成しておく。
今回だと、例としてテーブル名「table1」

3.Excelにスクリプト記述

ImportData
function main(workbook: ExcelScript.Workbook,
    arrayfromflow: arrayofdata[], sheetName: string,
    tableName: string) {

    // Automateからシート名を受け取る
    let sheet = workbook.getWorksheet(sheetName);
    // Automateからテーブル名を受け取る
    let existingTable = workbook.getTable(tableName);


    //JSON文字列をオブジェクトに変換。
    let parsedArray: object[] = (typeof arrayfromflow === "string") ? JSON.parse(arrayfromflow) : arrayfromflow;


    // 配列を行データとして成形
    let formattedRows = parsedArray.map(item =>
        [item["No."], item["名称"], item["類別"]]
    );

    // 既存のテーブルにデータを追加
    existingTable.addRows(0, formattedRows);
}

// データ型(インターフェース)定義
interface arrayofdata {
    No: number,       // No.(文字列)
    Name: string, // 名称(文字列)
    Category: string, // 類別(文字列)
}

4.Automateのフロー作成

Automateのフロー

①[PowerApps]トリガー
Power Apps(V2)
↓↓↓

②[SharePoint]複数の項目の取得
サイトのアドレス:任意のサイトを選択してください。
リスト名:SharePointのリスト名を選択してください。
↓↓↓

③[データ操作]選択
開始:(複数の項目の取得)欄から valueを選択。

マップ:出力したい項目に応じて設定・紐づけしてください。
キー:Excel側のテーブルの列名
値:(複数の項目の取得)欄から紐づけたい値を選択。
※注意として、●● Valueってのが時々あります。
 それは、シェアポイントリストの列が選択式形式の場合は
 ●●valueを選んでください。
↓↓↓

④[Excel Online]スクリプトの実行
場所:任意のSharePointのサイトを選択してください。
ドキュメントライブラリ:Excelが保存されてるとこ。自動で表示されるの選択。
ファイル:上記のドキュメントライブラリ以降のFull Pathを記述。
/エクセル名.拡張子
スクリプト:上記を選択すると、選べるようになる。

下記は、スクリプトに渡す引数。
スクリプト側に記述してあれば、上記のスクリプト選択後に入力できます。

arrayfromflow:アレイ全体の入力に切り替えて、
(選択)で取得した出力を選ぶ。
sheetName:Excelの任意のワークシート名を記述。例:sheet1
tableName:Excelの任意のテーブル名を記述。例:table1

以上です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?