我有一个包含多个工作表的电子表格。我想每次导出其中的两个工作表。其中,Sheet One(工作表一)是包含信息的工作表,Sheet Two(工作表二)是需要提供给客户的工作表,它从Sheet One中引用数据。
目前,我会创建一个新的临时电子表格,将Sheet One复制到新电子表格中,然后再将Sheet Two复制到临时电子表格中。接下来,我将临时电子表格转换为PDF格式,然后删除临时电子表格,并将PDF保存到Google Drive文件夹中。
生成的PDF包含两个工作表各两页。但我只需要Sheet Two。如果我仅传输Sheet Two,则该工作表上会有许多#REF错误,因为Sheet One不存在。是否有方法可以仅导出Sheet Two而不会产生#REF错误?
以下是我的代码:
目前,我会创建一个新的临时电子表格,将Sheet One复制到新电子表格中,然后再将Sheet Two复制到临时电子表格中。接下来,我将临时电子表格转换为PDF格式,然后删除临时电子表格,并将PDF保存到Google Drive文件夹中。
生成的PDF包含两个工作表各两页。但我只需要Sheet Two。如果我仅传输Sheet Two,则该工作表上会有许多#REF错误,因为Sheet One不存在。是否有方法可以仅导出Sheet Two而不会产生#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);