我正在使用Google电子表格来准备发票,并且正在寻找一个简单的脚本,该脚本将发票所在的工作表保存在“发票”文件夹中以构建存档 . 我从Stackoverflow和youtube上的众多贡献者那里“借用”了代码,并提出了一个有效的代码 . 我不得不将发票复制到新创建的电子表格中,因为似乎无法从类型电子表格中的单个工作表创建pdf . 我还必须使用一段代码将pdf从根目录移动到“发票”文件夹我唯一无法解决的是第6行中创建的电子表格由2张表组成 . 一个空的和一个正确复制的 . 创建的pdf因此alsa有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);
}
}
1 回答
我不确定您是否遇到过此代码,但您可以尝试这样做:
Note :在测试此代码时,它会立即创建pdf,但可能取决于发票模板 .
参考文献:
Simple Google Apps Script to export a single sheet to PDF and email it to a contact list
Sample Template - Professional Invoice Template(用于测试目的)
希望这可以帮助!
更新