我的谷歌应用程序脚本将csv文件[test.csv]导入新选项卡,操作一些值,然后将操纵的选项卡保存为csv文件[test.csv].当它保存新版本时,它只是制作另一个副本[test(1).csv].我希望改写以前的文件(或删除旧的文件,然后导出/写入新版本.)请帮助吗?
我知道这是一个老问题,但从那时起谷歌已经弃用了已接受答案中的大部分信息.DocsList消失了,文件对象上的clear()和append()方法也消失了.
我使用以下函数来创建或覆盖文件:
// Creates or replaces an existing file
function updateFile (folder, filename, data) {
try {
// filename is unique, so we can get first element of iterator
var file = folder.getFilesByName(filename).next()
file.setContent(data)
} catch(e) {
folder.createFile(filename, data)
}
}
Run Code Online (Sandbox Code Playgroud)
作为参考,这里有一些代码用于对文件夹执行相同操作.它假设我们正在当前工作表的父文件夹中操作,并希望在那里有新文件夹或现有文件夹的文件夹对象.
// Get folder under current folder. Create it if it does not exist
function getOrCreateFolder(csvFolderName) {
var thisFileId = SpreadsheetApp.getActive().getId();
var thisFile = DriveApp.getFileById(thisFileId);
var parentFolder = thisFile.getParents().next();
try {
// csvFolderName is unique, so we can get first element of iterator
var folder = parentFolder.getFoldersByName(csvFolderName).next();
// asking for the folder's name ensures we get an error if the
// folder doesn't exist. I've found I don't necessarily catch
// an error from getFoldersByName if csvFolderName doesn't exist.
fname = folder.getName()
} catch(e) {
var folder = parentFolder.createFolder(csvFolderName);
}
return folder
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3402 次 |
| 最近记录: |