プログラムの概要
Google App Script(GAS)を使用して、Googleドライブに保存されたCSVファイルをインポートして、新たに作成したスプレッドシートに書き込むプログラムをご紹介します。
Google App Script サンプルプログラム
以下が、CSVファイルをインポートし、新規で作成したスプレッドシートに登録するためのGoogle App Scriptのサンプルコードです。
function CsvToSpreadsheet() {
// 新しいスプレッドシートを作成
var sheet = SpreadsheetApp.create('新しいスプレッドシート').getActiveSheet();
// CSVファイルの格納フォルダとCSVファイルを取得
var folder = DriveApp.getFolderById("フォルダIDを入力");
var file = folder.getFilesByName("インポートするCSVファイル名を入力").next();
// CSVファイルを文字列化
var tmpCsvString = file.getBlob().getDataAsString();
// BOMを削除してCSV文字列に変換
var csvString = tmpCsvString.charCodeAt(0) === 0xFEFF ? tmpCsvString.slice(1) : tmpCsvString;
// CSVの文字列を二次元配列に変換
var arrays = Utilities.parseCsv(csvString);
// シートをクリアしてCSVデータを貼り付け
sheet.clear();
sheet.getRange(1, 1, arrays.length, arrays[0].length).setValues(arrays);
}
Google App Scriptプログラムの解説
SpreadsheetApp.create('新しいスプレッドシート')
: 新しいスプレッドシートを作成し、そのシートをsheet
変数に代入します。.getActiveSheet()
メソッドは新しく作成されたスプレッドシートのアクティブなシートを取得します。DriveApp.getFolderById("
フォルダIDを入力")
: 指定されたフォルダIDのGoogle Driveフォルダを取得し、folder
変数に代入します。folder.getFilesByName("インポートするCSVファイル名を入力").next()
: フォルダ内で名前が指定したフォルダ名と一致するファイルを取得します。.next()
メソッドで最初のファイルを取得します。file.getBlob().getDataAsString()
: CSVファイルの内容を文字列として取得します。tmpCsvString.charCodeAt(0) === 0xFEFF ? tmpCsvString.slice(1) : tmpCsvString
: CSVファイルの先頭にBOM(Byte Order Mark)がある場合は、それを削除します。Utilities.parseCsv(csvString)
: CSV文字列を二次元配列に変換します。sheet.getRange(1, 1, arrays.length, arrays[0].length).setValues(arrays)
: シートをクリアして、CSVデータをA1セルから貼り付けます。arrays.length
は行数、arrays[0].length
は列数です。
まとめ
CSVをインポートしてスプレッドシートに取り込む処理は自動処理をする中でとてもよく使われます。この記事がお役に立てることを祈っています。またこの記事を作成するにあたり次の記事を参考に作りました。大変助かりました、ありがとうございました。
https://web-breeze.net/import-csv-to-sheet/