【问题标题】:Google App Script to export and replace csv files用于导出和替换 csv 文件的 Google App 脚本
【发布时间】:2016-08-22 19:20:39
【问题描述】:

我目前有一个谷歌电子表格,它将创建一个 csv 文件,并在触发触发时将其保存在我的谷歌驱动器上。我想不通的是如何在创建新的 csv 文件之前删除现有的 csv 文件。当它保存新版本时,它只是制作另一个副本。我需要覆盖以前的文件(或删除旧文件然后导出/写入新版本。)

这是创建 csv 文件的脚本:

function saveAsCSV() {
  // Prompts the user for the file name
  var fileName = ("myCSVFile");
  // Check that the file name entered wasn't empty
  if (fileName.length !== 0) {
    // Add the ".csv" extension to the file name
    fileName = fileName + ".csv";
    // Convert the range data to CSV format
    var csvFile = convertRangeToCsvFile_(fileName);
    // Create a file in the Docs List with the given name and the CSV data
    DriveApp.createFile(fileName, csvFile);
  }
  else {
    Browser.msgBox("Error: Please enter a CSV file name.");
  }
}

如何在每次脚本触发器关闭时覆盖 csv 文件?

【问题讨论】:

标签: javascript csv google-apps-script


【解决方案1】:

您可以在使用file.setTrashed(true) 写入新文件之前删除该文件。请参阅File Class documentation. 中的主要示例

【讨论】:

  • 我在您提供的链接中找到了解决方案。该文件被删除,一个新的文件取而代之。谢谢!
【解决方案2】:

您可以先删除文件,使用File.setTrashed(true);,也可以简单地更改文件的内容,使用File.setContent(csvFile);

【讨论】:

  • 为了更改文件的内容,我是否替换:“DriveApp.createFile(fileName, csvFile);”使用您的解决方案:“File.setContent(csvFile);”?
  • 是的,除了你会得到File instance,而不是像DriveApp 这样的单例。例如,var f = DriveApp.getFile(id); f.setContent(csv);
猜你喜欢
  • 2011-05-08
  • 2011-02-17
  • 2021-03-28
  • 1970-01-01
  • 2014-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多