Google 父文件夹中的代码(驱动器)createFile folder/overwrite 父文件夹中的现有文件
Google Code (Drive) createFile in parent folder/overwrite existing file in parent folder
所以我创建了一个简单的 google 代码,将 sheet 导出到 json,我想知道是否有一种简单的方法可以:
- 将文件导出到 sheet 脚本 运行 所在的同一文件夹,
- 如果文件已存在则覆盖该文件(也在 sheet 脚本所在的同一文件夹中)
干杯
没有简单的方法,但方法如下(我假设您使用的是 Apps 脚本):
- 获取电子表格的文件 ID https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getId()
- 获取其父文件夹 - 可以有多个 - https://developers.google.com/apps-script/reference/drive/file#getParents()
- 查看是否存在同名文件 - 可以有多个 - https://developers.google.com/apps-script/reference/drive/folder#getFilesByName(String)
- 如果存在则设置其内容https://developers.google.com/apps-script/reference/drive/file#setcontentcontent
- 如果不存在则创建它 - https://developers.google.com/apps-script/reference/drive/folder#createfilename-content
感谢 Ian 提供的研究链接,使其有效:)
如果其他人需要同样的东西,这里是代码片段
var _ID = SpreadsheetApp.getActiveSpreadsheet().getId();
var _sheet = SpreadsheetApp.getActiveSpreadsheet();
var _file = DriveApp.getFolderById(_ID);
var _folder = _file.getParents().next();
var _parentFolder = _file.getParents().next();
var _existingJsons = _parentFolder.getFilesByName(sheet.getName()+".json");
// if .json with the same name already exists in this directory, just overwrite content
if (_existingJsons.hasNext()){
while (_existingJsons.hasNext() ){
var _json = _existingJsons.next();
_json.setContent(output);
Logger.log(_json.getName());
}
}
// if not, create new one, and move it in the same folder sheet is in
else {
var _json = DriveApp.createFile(sheet.getName()+".json", output, MimeType.PLAIN_TEXT);
_json.makeCopy(_parentFolder);
_json.setTrashed(true);
}
所以我创建了一个简单的 google 代码,将 sheet 导出到 json,我想知道是否有一种简单的方法可以:
- 将文件导出到 sheet 脚本 运行 所在的同一文件夹,
- 如果文件已存在则覆盖该文件(也在 sheet 脚本所在的同一文件夹中)
干杯
没有简单的方法,但方法如下(我假设您使用的是 Apps 脚本):
- 获取电子表格的文件 ID https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getId()
- 获取其父文件夹 - 可以有多个 - https://developers.google.com/apps-script/reference/drive/file#getParents()
- 查看是否存在同名文件 - 可以有多个 - https://developers.google.com/apps-script/reference/drive/folder#getFilesByName(String)
- 如果存在则设置其内容https://developers.google.com/apps-script/reference/drive/file#setcontentcontent
- 如果不存在则创建它 - https://developers.google.com/apps-script/reference/drive/folder#createfilename-content
感谢 Ian 提供的研究链接,使其有效:)
如果其他人需要同样的东西,这里是代码片段
var _ID = SpreadsheetApp.getActiveSpreadsheet().getId();
var _sheet = SpreadsheetApp.getActiveSpreadsheet();
var _file = DriveApp.getFolderById(_ID);
var _folder = _file.getParents().next();
var _parentFolder = _file.getParents().next();
var _existingJsons = _parentFolder.getFilesByName(sheet.getName()+".json");
// if .json with the same name already exists in this directory, just overwrite content
if (_existingJsons.hasNext()){
while (_existingJsons.hasNext() ){
var _json = _existingJsons.next();
_json.setContent(output);
Logger.log(_json.getName());
}
}
// if not, create new one, and move it in the same folder sheet is in
else {
var _json = DriveApp.createFile(sheet.getName()+".json", output, MimeType.PLAIN_TEXT);
_json.makeCopy(_parentFolder);
_json.setTrashed(true);
}