使用GoogleApps脚本将电子表格中的单个表格以pdf格式保存在特定文件夹中

您所在的位置:网站首页 pod是什么文件 使用GoogleApps脚本将电子表格中的单个表格以pdf格式保存在特定文件夹中

使用GoogleApps脚本将电子表格中的单个表格以pdf格式保存在特定文件夹中

2023-03-01 23:25| 来源: 网络整理| 查看: 265

我正在使用Google电子表格来准备发票,并且正在寻找一个简单的脚本,该脚本将发票所在的工作表保存在“发票”文件夹中,以建立档案。我从Stackoverflow和youtube上的众多贡献者那里“借用”了代码,并提出了一个有效的代码。我必须将发票复制到新创建的电子表格中,因为从电子表格类型中的一张纸上创建pdf似乎是不可能的。我还必须使用一段代码将pdf从根目录移动到“发票”文件夹。我唯一无法解决的问题是,第6行中创建的电子表格包含2张纸。一个空的和正确复制的一个。因此,创建的pdf包含2张纸,一张空白纸和一张正确纸。有人知道如何解决这个问题吗?顺便说一句,有时需要几分钟才能在文件夹中显示pdf。

下面是代码

function generatePdf(){ //Create a temporary spreadsheet, to store the desired sheet from the spreadsheet in. var originalSpreadsheet = SpreadsheetApp.getActive(); originalSpreadsheet.setActiveSheet(originalSpreadsheet.getSheets()[4]); var name = "Testname" var newSpreadsheet = SpreadsheetApp.create(name); var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); sheet = originalSpreadsheet.getActiveSheet(); sheet.copyTo(newSpreadsheet); //Save the desired sheet as pdf var pdf = DriveApp.getFileById(newSpreadsheet.getId()).getAs('application/pdf'); var saveCopy = DriveApp.createFile(pdf); //Delete temporary spreadsheet DriveApp.getFilesByName(name).next().setTrashed(true); //Move the pdf file from the rootfolder to the folder where invoices are to be stored. var files = DriveApp.getRootFolder().getFiles(); while (files.hasNext()) { var file = files.next(); var destination = DriveApp.getFolderById("0B3ok04PZOVbgLXA2dy14MVlLRXM"); destination.addFile(file); var pull = DriveApp.getRootFolder(); pull.removeFile(file); } }

Mr.Rebot.. 9

我不确定您是否遇到此代码,但是可以尝试以下操作:

function checkSheet() { var sheetName = "Sheet1"; var folderID = "FOLDER_ID"; // Folder id to save in a folder. var pdfName = "Invoice "+Date(); var sourceSpreadsheet = SpreadsheetApp.getActive(); var sourceSheet = sourceSpreadsheet.getSheetByName(sheetName); var folder = DriveApp.getFolderById(folderID); //Copy whole spreadsheet var destSpreadsheet = SpreadsheetApp.open(DriveApp.getFileById(sourceSpreadsheet.getId()).makeCopy("tmp_convert_to_pdf", folder)) //delete redundant sheets var sheets = destSpreadsheet.getSheets(); for (i = 0; i

注意:在测试此代码时,它会立即创建pdf,但可能取决于发票模板。

参考文献:

简单的Google Apps脚本可将单个工作表导出为PDF并将其通过电子邮件发送到联系人列表

样本模板-专业发票模板(用于测试)

希望这可以帮助!

更新

1> Mr.Rebot..:

我不确定您是否遇到此代码,但是可以尝试以下操作:

function checkSheet() { var sheetName = "Sheet1"; var folderID = "FOLDER_ID"; // Folder id to save in a folder. var pdfName = "Invoice "+Date(); var sourceSpreadsheet = SpreadsheetApp.getActive(); var sourceSheet = sourceSpreadsheet.getSheetByName(sheetName); var folder = DriveApp.getFolderById(folderID); //Copy whole spreadsheet var destSpreadsheet = SpreadsheetApp.open(DriveApp.getFileById(sourceSpreadsheet.getId()).makeCopy("tmp_convert_to_pdf", folder)) //delete redundant sheets var sheets = destSpreadsheet.getSheets(); for (i = 0; i

注意:在测试此代码时,它会立即创建pdf,但可能取决于发票模板。

参考文献:

简单的Google Apps脚本可将单个工作表导出为PDF并将其通过电子邮件发送到联系人列表

样本模板-专业发票模板(用于测试)

希望这可以帮助!

更新



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3