如果存在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

我正在尝试创建一个导出到csv应用程序脚本,但它不会删除位于同一文件夹中的现有csv文件。我想要么丢弃它们,要么覆盖它们

这是我已经试过的代码

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;i
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++;
  }
  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);

  }      
};