我觉得这是一个简单的问题,之前已经回答了很多,尽管我浪费了几个小时在这个网站(和其他网站)上搜索我的问题的简单、明确的答案,但我找不到一;因此我的问题。
背景
我经常需要开具发票,提供每个生产/制造订单的详细信息。我最近将几乎所有的数据库内容从 MS Excel 转移到谷歌表格,以获得所有明显的好处(尤其是那些基于云的好处)。上述发票是使用电子表格创建的。该电子表格由多张工作表组成,每张工作表负责从不同的源电子表格中收集相关数据。包含主发票界面的主表导出为 PDF 文件,其名称源自某个单元格(通常为 B6)。此单元格包含一个公式,该公式显示多个其他单元格的组合,换言之,此单元格不断变化并与其他单元格相关联。
当我过去使用 Excel 时,我在互联网上搜索并能够创建 VBA 代码并将其链接到宏命令,这使我可以毫无问题地导出名称来自上述单元格的发票表。当我激活宏时,文件会立即导出为 PDF 文件,其中名称正是我想要的(即名称基于单元格 B6 的当前内容)。
问题
我在互联网 (like this one) 上找到的任何资源都无法使用或复制它们所拥有的资源,而且我无法自己从头开始创建。
我需要什么
如何在 Google 表格中完成此操作?如果这太简单或张贴在其他地方,我真的很抱歉,但正如我之前所说,我的经验非常有限,我无法在其他任何地方找到我需要的东西。
答案 0 :(得分:0)
您正在寻找这样的东西吗?
function exportSheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var mainSheetName = 'Main Sheet'; //Change 'Main Sheet' to the name of your main sheet
var mainSheet = ss.getSheetByName(mainSheetName);
var name = mainSheet.getRange('B6').getValue(); //Gets the pdf name from cell B6
var sheets = ss.getSheets(); //Pulls all sheets as an array
for (var i = 0; i < sheets.length; i++) { //Iterates through all sheets
if (sheets[i].getSheetName() !== mainSheetName) { //Hides all sheets that are not the main one
sheets[i].hideSheet()
}
}
DriveApp.createFile(ss.getBlob().getAs('application/pdf').setName(name)); //Exports the main sheet
for (var i = 0; i < sheets.length; i++) { //Brings back all sheets that were hidden
sheets[i].showSheet()
}
}
我在模拟表中对此进行了测试,它对我有用。如果您对此有任何疑问,或者我误解了什么,请告诉我。