[データ連携]Power Automateで取得したエクセルデータをスプレッドシートに4ステップで反映させる手順

GAS
ホーム » GAS » [データ連携]Power Automateで取得したエクセルデータをスプレッドシートに4ステップで反映させる手順

対象者

PowerAutomate公式サイト

・Power Automateを使用している方

・Power Automateで取得したデータをスプレッドシートに反映させたい方

・Power Automateを利用したことはないが、利用してみたい方

created by Rinker
¥2,970 (2024/04/13 08:36:27時点 楽天市場調べ-詳細)

大枠のイメージ

①PowerAutomateでデータを取得
②取得したデータをエクセルに保存
————-PowerAutomateでの設定————————-

③保存したエクセルファイルをCSVに変換
④GASでCSVからデータをコピーしてスプレッドシートに反映

以上4つで簡単に自動で反映させることができます。

平凡太郎
平凡太郎

※スプレッドシートはエクセルとCSVからデータを取得することができます。
ただ、エクセルから反映させようとすると挙動が安定しないので、おススメはしません。

PowerAutomate側での設定

PowerAutomate側の設定としては上記①②③が必要となります。
①に関しては取得したいデータがそれぞれ違うと思うので設定してください。
②は下記画像のエクセルに部分を操作して、最後に保存してください。

GASのコード

GAS側の設定で必要なのは③④になります。

該当するコードは下記になります。
GASの始め方はこちら

function getCSVFileId() {
  var folderId = "フォルダのID";  // 対象のフォルダのIDを指定
  var targetFileName = "CSVファイルの名前";  // 対象のCSVファイルの名前を指定
  
  var folder = DriveApp.getFolderById(folderId);
  var files = folder.getFilesByName(targetFileName);
  
  if (files.hasNext()) {
    var csvFile = files.next();
    var csvFileId = csvFile.getId();
    return csvFileId;
  } else {
    return null;
  }
}

function pastecsvdatatospreadsheet() {
  var csvFileId = getCSVFileId();  // CSVファイルのIDを取得
  var csvfileId2 = getCSVFileId2();
  
  if (csvFileId) {
    var csvFile = DriveApp.getFileById(csvFileId);
    var csvBlob = csvFile.getBlob();
    var csvContent = csvBlob.getDataAsString('Shift_JIS');
    var csvData = Utilities.parseCsv(csvContent);
    
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var targetSheet = ss.getSheetByName("スプレッドシート名");
    
    targetSheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
  } else {
    Logger.log("CSVファイルが見つかりませんでした。");
  }

pastecsvdatatospreadsheet();

設定が必要な値は下記3つになります。

var folderId = “フォルダのID”; // 対象のフォルダのIDを指定

平凡太郎
平凡太郎

CSVが格納されているGoogleDriveのフォルダIDを入力してください。
https://drive.google.com/drive/folders/フォルダID


var targetFileName = “CSVファイルの名前”; // 対象のCSVファイルの名前を指定

平凡太郎
平凡太郎

こちらはCSVファイルのファイル名を入力してください。
○○○.csvの○○○の部分です


var targetSheet = ss.getSheetByName(“スプレッドシート名”);

平凡太郎
平凡太郎

こちらは、CSVの内容を出力したいスプレッドシート名を入力してください。

最後に

いかがでしょうか。
スプレッドシートで社内共有されている方は重宝すると思います。

タイトルとURLをコピーしました