GASでCSVをスプレッドシートにインポートし、余計な行・列を消す
時間がない人へのまとめ
この記事では、Google Driveの特定フォルダに保存されたCSVを指定したスプレッドシートにシートを分けてインポートし、余計な行・列を削除するサンプルコードを紹介します。
目次
はじめに
この記事では、Google Driveの特定フォルダに保存されたCSVを指定したスプレッドシートにシートを分けてインポートし、余計な行・列を削除するサンプルコードを紹介します。
全体コード
function importCSVFromGoogleDrive() {
// スプレッドシートの指定
var ss_id = "スプレッドシートID";
// DriveのフォルダID指定(取り込みたいCSVを配置しているフォルダIDです)
var id = "フォルダID";
// スプレッドシートの取得
var sh = SpreadsheetApp.openById(ss_id);
// フォルダの取得
var target = DriveApp.getFolderById(id);
// フォルダ内部のファイルを取得
var files = target.getFiles();
// ファイルの数だけ繰り返す
while (files.hasNext()) {
// ファイルを取得
var file = files.next();
// ファイルの名前を取得
var fileName = file.getName();
// csvを解析
var csvData = Utilities.parseCsv(file.getBlob().getDataAsString());
// シートの作成
var newSheet = sh.insertSheet();
// シートの名前を、ファイルの拡張子より前と同じに変更
newSheet.setName(fileName.slice( 0, -4 ));
// シートにCSVをインポート
newSheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
// 値が入っている最終行の位置を取得する
let lastRow = newSheet.getLastRow();
// 値が入っている最終列の位置を取得する
let columns = newSheet.getLastColumn();
// シート上の最大の行数を取得する
const maxlastRow = newSheet.getMaxRows();
// シート上の最大の列数を取得する
const maxcolumns = newSheet.getMaxColumns();
// 不要な列の削除
newSheet.deleteColumns(columns,maxcolumns-columns);
// 不要な行の削除
newSheet.deleteRows(lastRow,maxlastRow-lastRow);
}
}