対象となるtest.csvという名前のcsvファイルがteratailというフォルダに入っていて、あるスプレッドシートのシート1という名前のシートにインポートするという前提です。スクリプトは特定のスプレッドシートシートにバウンドされているとします。流し込みたいスプレッドシートはどこに置いてもかまいません。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName("シート1");
function importData() {
// フォルダー名
var folderName = "teratail";
// ファイル名
var fileName = "test.csv";
var folders = DriveApp.getFoldersByName(folderName);
while (folders.hasNext()) {
var folder = folders.next();
if (folder.getName() == folderName) {
// フォルダーID取得
var folderId = folder.getId();
var files = DriveApp.getFolderById(folderId).getFiles();
while (files.hasNext()) {
var file = files.next();
if (file.getName() == fileName) {
// 対象CSVファイルがUTF-8なら("Shift_JIS")ではなく、単に()とする
var data = file.getBlob().getDataAsString("Shift_JIS");
var csv = Utilities.parseCsv(data);
sh.getRange(1,1,csv.length,csv[0].length).setValues(csv);
}
}
}
}
}
フォルダーIDはフォルダー名から探し出していますが、自力で調べればすぐに分かるので、実際は下記のようにするほうが良いかなあとは思います。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName("シート1");
function importData() {
var folderId = "自力で調べたフォルダーID";
var fileName = "test.csv";
var files = DriveApp.getFolderById(folderId).getFiles();
while (files.hasNext()) {
var file = files.next();
if (file.getName() == fileName) {
var data = file.getBlob().getDataAsString("Shift_JIS");
var csv = Utilities.parseCsv(data);
sh.getRange(4,1,csv.length,csv[0].length).setValues(csv);
}
}
}
DriveAppクラスやUtilitiesクラスについて目を通せばいろいろ出てくるかと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/17 07:07
2016/10/22 01:41
2016/10/22 10:39
2016/10/22 12:42