ユーザ用ツール

サイト用ツール


gas

文書の過去の版を表示しています。


Google App Script

スプレッドシート

スプレッドシートのIdを指定して開く

var spreadsheet = SpreadsheetApp.openById(<spread sheet ID>);
var sheet = spreadsheet.getSheetByName("<sheet_name>");

指定したシートのデータを取得する。 流れは

  1. スプレッドシートのIDを指定して開く
  2. シート名を指定して開く
  3. データ領域の大きさを取得
  4. 領域のデータを取得

という流れになる。コードは以下の通り。

var spreadsheet = SpreadsheetApp.openById(<spread sheet ID>);
var sheet = spreadsheet.getSheetByName("<sheet_name>");
var range = sheet.getDataRange(); // これで、データがある領域のrectangle を取得できる。
var values = range.getValues();

ループ処理

for of 文

配列の中身をすべて処理したい場合は for of を使用する。

for(変数 of 配列){
  //配列の要素数だけ繰り返し、毎回変数に配列値を格納
  //for ofループで実行する処理を記述
 
}

シートの範囲を指定する

getRange(row, column, numRows, numColumns)
項目説明
row範囲の開始行のインデックスを指定。
column範囲の開始列のインデックスを指定。
numRows範囲に含まれる行の数を指定。
numColumns範囲に含まれる列の数を指定。
function exportToCSV() {
  var spreadsheetId = "<spread sheet ID>"; // スプレッドシートのIDを指定
  var spreadsheet = SpreadsheetApp.openById(spreadsheetId); // スプレッドシートIDを指定して開く。
  var sheet = spreadsheet.getSheetByName("tb01"); // シートの名前を指定

  var range = sheet.getDataRange(); 指定したシートのデータ領域を取得
  var values = range.getValues(); その領域のデータを取得

// values 各行列のデータをもとにCSVを作成
  var csvContent = "";
  for (var row = 0; row < values.length; row++) {
    var rowData = values[row];
    for (var col = 0; col < rowData.length; col++) {
      var cellValue = rowData[col];
      if (cellValue !== null && cellValue !== undefined) {
        // セルの値が文字列になるようにエスケープ処理
        cellValue = '"' + cellValue.toString().replace(/"/g, '""') + '"';
      } else {
        cellValue = "";
      }
      csvContent += cellValue;
      if (col < rowData.length - 1) {
        csvContent += ",";
      }
    }
    csvContent += "\n";
  }

  // CSVファイルをエクスポートする
  var fileName = "export.csv";
  var mimeType = "text/csv";
  var blob = Utilities.newBlob(csvContent, mimeType, fileName); // blob を作成
  DriveApp.createFile(); // blobを指定してファイルをエクスポートする
}
gas.1689754520.txt.gz · 最終更新: 2023/07/19 17:15 by mikoto