0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ExcelファイルをGoogle Spreadsheetへインポートする時に、自動で行挿入してくれるスクリプト

Last updated at Posted at 2024-02-21

背景

以下問題を解決するためにスクリプトを書きました

  • ExcelファイルをGoogle Spreadsheetにインポートする際の問題点
    • 既存のシートに直接データを上書きしてしまう
    • 手動で行の調整が必要となるため、作業効率が悪い

使用技術

  • Google Apps Script (GAS)

使用方法

  1. Excelファイルをアップロード

    • GoogleDriveにインポートしたいExcelファイル(またはスプレッドシート)をアップロードし、スプレッドシート形式で保存
  2. ファイル名を記入

    • スプレッドシートの"C1"セルに1で保存したファイル名を記入
  3. GASの実行

実装コード

function importDataFromXlsx() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  
  // "C1"セルからインポートするファイル名を読み取る
  var fileName = sheet.getRange('C1').getValue();
  
  // ファイル名でドライブのファイルを検索
  var files = DriveApp.getFilesByName(fileName);
  if (!files.hasNext()) {
    SpreadsheetApp.getUi().alert('ファイルが見つかりません: ' + fileName);
    return;
  }
  
  var file = files.next();
  var fileId = file.getId();
  
  // ファイルを取得し、変換されたスプレッドシートへの参照を得る
  var dataSpreadsheet = SpreadsheetApp.openById(fileId);
  var dataSheet = dataSpreadsheet.getSheets()[0];
  
  // 最初の行を除外してデータの範囲を取得
  var range = dataSheet.getDataRange();
  var values = range.getValues().slice(1);
  
  // スタート位置である"B5"のセルを取得
  var startCell = sheet.getRange('B5');
  var numRows = values.length;
  var numColumns = values[0].length;
  
  // レコード分の行を追加
  sheet.insertRowsAfter(startCell.getRow(), numRows - 1);
  
  // データを貼り付ける範囲を設定してデータを挿入
  var destinationRange = sheet.getRange(startCell.getRow(), startCell.getColumn(), numRows, numColumns);
  destinationRange.setValues(values);
  
  // 元のファイルをゴミ箱に移動
  file.setTrashed(true);
}

あとがき

このスクリプトを通じて、ExcelファイルからGoogle Spreadsheetへのデータインポート作業を大幅に効率化できます。
ChatGPTを使えば、少ない工数で自動化スクリプトが書けるので、どんどん自動化して陳腐化したらどんどん捨てましょう・。・b

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?