【问题标题】:Take a range of cells from a Google spreadsheet从 Google 电子表格中提取一系列单元格
【发布时间】:2016-11-08 17:46:00
【问题描述】:

这里是编程菜鸟,正在努力学习……

我正在尝试在一个谷歌电子表格中获取一系列单元格(不与任何页面/工作表边框相邻),将范围转换为 pdf,然后将 pdf 作为电子邮件附件通过电子邮件发送到指定地址。我可以使用预先编写的插件,但我不会学习。一个人只能通过提问来学习。

我在谷歌上搜索了答案,然后访问了这个网站 (https://ctrlq.org/code/19869-email-google-spreadsheets-pdf)。麻烦的是,这个脚本将所有工作表都发送到一个 zip 文件中。我不想这样做。我只想以 pdf 格式发送仅位于第一张工作表中的一系列选定单元格,并且以 pdf 格式发送,而不是 zip 文件。

我几乎不存在的 javascript 教育告诉我,我的脚本使用以下代码 sn-p 来获取相关数据: (显然,我可能错了……)

// Get the currently active spreadsheet URL (link)
// Or use SpreadsheetApp.openByUrl("<<SPREADSHEET URL>>");
var ss = SpreadsheetApp.getActiveSpreadsheet();

我不知道我是否得到了正确的 sn-p,这就是为什么我包含其来源的 URL。无论如何,我只想发送一个从第 2 行第 3 列开始到第 31 行第 12 列结束的范围。7 天后,我想使用另一个脚本来发送不同的范围。

如何修改此脚本以实现我的目标?

感谢所有可以提供帮助的人!

【问题讨论】:

  • 欢迎来到 Stackoverflow。 Google Apps Script Reference 是一个很好的起点。如果您查看ranges 的参考资料,您会注意到没有方法可以将范围作为pdf 获取。工作表也没有,仅适用于整个电子表格,因此您需要创建一个仅包含该范围而不包含其他内容的电子表格副本。

标签: pdf google-apps-script google-sheets


【解决方案1】:

首先,您需要了解您要求的是什么以及它的真正名称。

正如Robin Gertenbach 的评论中所述,您应该首先查看Google Documentation。只有在你用尽了那里的信息之后,你才应该在别处寻找代码 sn-ps 等。我这么说的原因是一个范围很可能不是你认为的那样。 range 对象本身不是您需要的数据,而是一个可以用来获取信息的类。

例如,如果您想要值,您可以执行SpreadsheetApp.getActiveRange().getValues() 之类的操作,这将返回一个 2 字符串值数组。但是,没有这样的方法可以将字符串输出为 pdf。从逻辑上讲,PDF 是文档,因此要获取 PDF,您需要导出文档。最低的文档类型是实际的电子表格,在文档中您可以看到 here

您能想到的任何其他内容都来自 Javascript,而不是 Google Apps 脚本,因此您可以查看。这里唯一的选择是创建一个新的电子表格并将其保存为 pdf,然后删除该电子表格。

您拥有的 sn-p 只是创建一个以整个电子表格为对象的变量。

【讨论】:

    猜你喜欢
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多