gpt4 book ai didi

pdf - 在Apps脚本中将单页导出为PDF

转载 作者:行者123 更新时间:2023-12-03 15:51:02 26 4
gpt4 key购买 nike

我在电子表格中有很多工作表。我有2张纸,每次都想导出。一张纸是带有信息的一张纸。第二张纸是我需要给客户的一张纸,它引用了第一张纸的引用。

当前,我创建一个新的临时电子表格,将工作表一复制到新的电子表格,然后将工作表二复制到该临时电子表格。之后,我将临时电子表格转换为pdf。然后,我删除临时电子表格,并将pdf文件保存到Google云端硬盘中的文件夹中。

创建的PDF包含两页纸,共两页。我只需要第二张纸。如果我仅传输第二张纸,则由于第一张纸不存在,因此该张纸会留下许多#REF错误。有什么方法可以只导出第二张工作表而不会出现#REF错误?

这是我的代码如下:

//create a temporary spreadsheet, copy both files onto it
var newSpreadsheet = SpreadsheetApp.create(nameOfSheet);
var d = ss.getSheetByName('Data').copyTo(newSpreadsheet); //the sheet with all the information
d.setName('Data');

sheetToCopy.copyTo(newSpreadsheet); //the sheet that uses references from the data sheet
newSpreadsheet.deleteSheet(newSpreadsheet.getSheetByName("Sheet1")); //delete the original sheet of the new spreadsheet
var blobOfNewSpreadsheet = newSpreadsheet.getBlob(); //create pdf
folder.createFile(blobOfNewSpreadsheet); //add to folder


//delete the temporary spreadsheet2
var deleteSpreadsheet = DriveApp.getFileById(newSpreadsheet.getId());
deleteSpreadsheet.setTrashed(true);

最佳答案

通过getBlob导出电子表格时,不包含隐藏的工作表。因此,您可以在导出之前暂时隐藏所有不需要的图纸。

function export() {    
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Unwanted Sheet');
sheet.hideSheet();
DriveApp.createFile(ss.getBlob());
sheet.showSheet();
}

上面仅隐藏了一张纸,这对于您的问题而言就足够了。这是一个隐藏所有内容的版本。
function exportSheet(sheetName) {    
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
for (var i = 0; i < sheets.length; i++) {
if (sheets[i].getSheetName() !== sheetName) {
sheets[i].hideSheet()
}
}
DriveApp.createFile(ss.getBlob());
for (var i = 0; i < sheets.length; i++) {
sheets[i].showSheet()
}
}

关于pdf - 在Apps脚本中将单页导出为PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38335143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com