Jef*_*eff 14 google-sheets google-apps-script google-drive-api
我正在使用Google App Script.我在尝试着:
在我看来,下面的代码应该可行,但事实并非如此.它确实完成了任务1和3 - 也就是说,它会复制并将副本保存到我想要的文件夹中.但是,它不会使用我指定的文件名保存文件.相反,它将其保存为"[原始电子表格文件名]的副本".要做到这一点,我正在使用File#makeCopy
(注意:我知道此问题之前已经得到解答,但我相信自谷歌日落以来,DocList服务尚未得到解答.)
当我制作这个简化的MCVE时,我发现它按预期工作:
function saveAsSpreadsheet() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var destFolder = DriveApp.getFolderById("xxxxxxxxxxxxxxxxx");
DriveApp.getFileById(sheet.getId()).makeCopy("desired file name", destFolder);
} //END function saveAsSpreadsheet
Run Code Online (Sandbox Code Playgroud)
但是,我的原始代码没有 - 副本的名称是错误的:
function saveAsSpreadsheet() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var buildingNameAddress = sheet.getRangeByName('buildingNameAddress').getValue();
Logger.log(buildingNameAddress); //Logs correct string
var destFolder = DriveApp.getFolderById("xxxxxxxxxxxxxxxxxxxxxx");
DriveApp.getFileById(sheet.getId()).makeCopy(buildingNameAddress, destFolder);
}
Run Code Online (Sandbox Code Playgroud)
Trầ*_*iền 24
这段代码对我来说很有用。
function cloneGoogleSheet() {
var destFolder = DriveApp.getFolderById("your_drive_folder_id");
DriveApp.getFileById("your_drive_source_file_id").makeCopy("particular_file_name", destFolder);
}
Run Code Online (Sandbox Code Playgroud)
poi*_*ick 13
以下是适合我的功能的更正代码.您没有设置我使用该方法的命名范围setNamedRange并为其命名.那和更改您获取范围值的变量名称TestRange.此外,getValue()只会获得一个值,而您需要一系列值,getValues()而是使用.但其余的代码很好,工作得很好.
function saveAsSpreadsheet(){
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var range = sheet.getRange('Sheet1!A1:B3');
sheet.setNamedRange('buildingNameAddress', range);
var TestRange = sheet.getRangeByName('buildingNameAddress').getValues();
Logger.log(TestRange);
var destFolder = DriveApp.getFolderById("xxxxxxxxxxxxxxxxxxxxx");
DriveApp.getFileById(sheet.getId()).makeCopy("Test File", destFolder);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23164 次 |
| 最近记录: |