如果存在csv文件,如何删除/丢弃/删除
我正在尝试创建一个导出到csv应用程序脚本,但它不会删除位于同一文件夹中的现有csv文件。我想要么丢弃它们,要么覆盖它们 这是我已经试过的代码如果存在csv文件,如何删除/丢弃/删除,csv,google-apps-script,delete-file,Csv,Google Apps Script,Delete File,我正在尝试创建一个导出到csv应用程序脚本,但它不会删除位于同一文件夹中的现有csv文件。我想要么丢弃它们,要么覆盖它们 这是我已经试过的代码 function saveAsCSV() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheets = ss.getSheets(); // create a folder from the name of the spreadsheet // var folder = Dr
function saveAsCSV() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
// create a folder from the name of the spreadsheet
// var folder = DriveApp.createFolder(ss.getName().toLowerCase().replace(/ /g,'_') + '_csv_' + new Date().getTime());
// var folder = DriveApp.createFolder(ss.getName().toLowerCase().replace(/ /g,'_') + '_csv_');
for (var i = 0 ; i < sheets.length ; i++) {
var sheet = sheets[i];
// append ".csv" extension to the sheet name
fileName = sheet.getName() + ".csv";
// convert all available sheet data to csv format
var csvFile = convertRangeToCsvFile_(fileName, sheet);
var file = DriveApp.getFileById(ss.getId());
var folder = file.getParents();
folder = folder.next();
// loop through files and delete ones with existing name
var existingfiles = folder.getFiles()
for (var j = 0 ; j<existingfiles.length;j++){
var existingfile = existingfiles[j].next()
if (existingfile.getName()!=ss.getName()){
//to delete
//existingfile.setTrashed(true);
folder.removeFile(existingfile);
}
}
//create new file
folder.createFile(fileName, csvFile);
}
}
函数saveAsCSV(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheets=ss.getSheets();
//根据电子表格的名称创建文件夹
//var folder=DriveApp.createFolder(ss.getName().toLowerCase().replace(//g,“'''+'''u csv'+new Date().getTime());
//var folder=DriveApp.createFolder(ss.getName().toLowerCase().replace(//g,“'''+''''csv'));
对于(变量i=0;ifunction trashOthers() {
var ss=SpreadsheetApp.getActive();
var shts=ss.getSheets();
var fldr=DriveApp.getFileById(ss.getId()).getParents();
var n=0;
while(fldr.hasNext()) {
var folder=fldr.next();
n++;
}
if(n>1){throw('More than one Folder');}
for (var i=0;i<shts.length;i++) {
var sh=shts[i];
var fileName=sh.getName() + ".csv";
var csvFile=convertRangeToCsvFile_(fileName, sh);
var xfiles=folder.getFiles();
while(xfiles.hasNext()) {
xfiles.next().setTrashed(true);
}
folder.createFile(fileName, csvFile);
}
}
function trashOthers(){
var ss=SpreadsheetApp.getActive();
var shts=ss.getSheets();
var fldr=DriveApp.getFileById(ss.getId()).getParents();
var n=0;
while(fldr.hasNext()){
var folder=fldr.next();
n++;
}
如果(n>1){throw('多个文件夹');}
对于(var i=0;i1){throw('多个文件夹');}
对于(var i=0;i非常感谢您的帮助。while循环帮助了很多。下面是最后对我有用的内容
function saveAsCSV() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var file = DriveApp.getFileById(ss.getId());
var folder = file.getParents();
folder = folder.next();
// loop through files and delete ones with existing name
var xfiles=folder.getFiles();
while(xfiles.hasNext()) {
var fi=xfiles.next();
if(fi.getMimeType()!=MimeType.GOOGLE_SHEETS){fi.setTrashed(true);}
}
// create new csv files
for (var i = 0 ; i < sheets.length ; i++) {
var sheet = sheets[i];
// append ".csv" extension to the sheet name
fileName = sheet.getName() + ".csv";
// convert all available sheet data to csv format
var csvFile = convertRangeToCsvFile_(fileName, sheet);
//create new file
folder.createFile(fileName, csvFile);
}
};
函数saveAsCSV(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheets=ss.getSheets();
var file=DriveApp.getFileById(ss.getId());
var folder=file.getParents();
folder=folder.next();
//循环浏览文件并删除具有现有名称的文件
var xfiles=folder.getFiles();
while(xfiles.hasNext()){
var fi=xfiles.next();
如果(fi.getMimeType()!=MimeType.GOOGLE_SHEETS){fi.setTrashed(true);}
}
//创建新的csv文件
对于(变量i=0;i
Close,谢谢!我的工作表文件位于同一目录中,与任何单独的工作表名称都不相同(例如,工作表名称为“Export Data”,工作表名称为S1、S2、S3)。此脚本不小心将“Export Data”文件也移到了垃圾箱中。我是否只需要添加类似于“``while(xfiles.hasNext()){if ss.getname()!=xfiles.next().getname()xfiles.next().setTrashed(true);}``很抱歉我没有想到这一点。嘿,不用担心。再次感谢。越来越近了。现在我只剩下最后一个csv,而我的工作表工作簿中目前只有3个csv。
function saveAsCSV() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var file = DriveApp.getFileById(ss.getId());
var folder = file.getParents();
folder = folder.next();
// loop through files and delete ones with existing name
var xfiles=folder.getFiles();
while(xfiles.hasNext()) {
var fi=xfiles.next();
if(fi.getMimeType()!=MimeType.GOOGLE_SHEETS){fi.setTrashed(true);}
}
// create new csv files
for (var i = 0 ; i < sheets.length ; i++) {
var sheet = sheets[i];
// append ".csv" extension to the sheet name
fileName = sheet.getName() + ".csv";
// convert all available sheet data to csv format
var csvFile = convertRangeToCsvFile_(fileName, sheet);
//create new file
folder.createFile(fileName, csvFile);
}
};