我正在一个项目中,我想将电子表格文件另存为PDF,因为我需要临时复制文件并删除多余的工作表。
问题在于,一个工作表引用了一个公式编制者,这使得脚本无法删除多余的工作表。
可以手动删除参考。
我想通过appsscipt来实现。
最近我找不到解决办法。
答案 0 :(得分:0)
使用Spreadsheet.copy(name)时,电子表格连同其大部分元数据(包括表单绑定)一起被复制。为了避免这种情况,您可以创建自己的copy
函数来逐页复制它,从而避免保留绑定。该函数将如下所示:
function customCopy(origin, destination) {
origin.getSheets().forEach(function(sheet) {
var copiedSheet = sheet.copyTo(destination);
copiedSheet.setName(sheet.getName());
});
destination.deleteSheet(destination.getSheets()[0]);
}
您可以使用以下功能对其进行测试:
function test() {
var origin = SpreadsheetApp.getActive();
var destination = SpreadsheetApp.create('New Spreadsheet');
customCopy(origin, destination);
}
请注意,此替代功能将比Spreadsheet.copy慢得多,尤其是在您的Spreadsheets文档包含许多Sheets的情况下。