下記スクリプトを実行すると、
指定したフォルダ内に同じCSVファイルが増えていってしまいます。
指定したフォルダはPCと同期していて、
CSVファイルの内容をエクセルに反映させたい為
CSVファイルが増えてしまっては困るので
どなたかご教示の程お願いいたします。
//ダイアログ用のグローバル変数
var url = "";
//CSVエクスポートするルーチン
function exportcsv(){
//データを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var ui = SpreadsheetApp.getUi();
var range = sheet.getSheetByName("シート名").getDataRange().getValues(); //シート名
var targetFolder = "保存先のフォルダーID"; //保存先のフォルダーID
if(range.length >= 1){
}else{
ui.alert("データがありません。");
return 0;
}
//csvデータをshif-jisに変換
var csvData = csvchange(range);
var filename = sheet.getSheetByName("シート名").getSheetName(); //シート名
var blob = Utilities.newBlob("", "text/comma-separated-values", filename + ".csv").setDataFromString(csvData, "Shift_JIS");
//blobデータをcsvファイルとしてドライブに保存
var fileid = DriveApp.getFolderById(targetFolder).createFile(blob).getId();
//ダウンロードリンクを生成
url = "https://drive.google.com/uc?export=download&id=" + fileid;
}
//CSVデータ形式に整える関数
function csvchange(data){
var folder = DriveApp.getFolderById("1k5LBZJZf6TJ9fc-hfO3atiloGUUN9stz");
var sheet = DriveApp.getFileById("1sVd88MCZZhYtTsQPvFNkEFHXkAXwVN1t1UhmAuiJqyc");
folder.removeFile(sheet);
var rowlength = data.length;
var columnlength = data[0].length;
var csvdata = "";
var csv = "";
for(var i = 0;i<rowlength;i++){
if (i < rowlength-1) {
csvdata += data[i].join(",") + "\r\n";
}else{
csvdata += data[i];
}
}
return csvdata;
}
回答1件
あなたの回答
tips
プレビュー