使用 Google Apps Script 开发 Web 应用程序/从电子表格获取数据
外观
Google Apps Script 允许您访问 Google 表格。您可以先建立与 Google Drive 表格的连接。有两种方法可以做到这一点
ss = SpreadsheetApp.openById(id)
其中“id”是典型的 Google Drive ID(通常在表格 URL 的“https://docs.google.com/spreadsheets/d/”之后的一长串字符)。ss = SpreadsheetApp.getActive()
如果您的脚本与电子表格绑定(见下文)
获得电子表格变量(在这些示例中为 ss
)后,您可以访问该文档中的各个工作表(有些人称之为选项卡)以及它们内部的任何数据。
如果您愿意,可以将您的脚本绑定到电子表格。然后,该脚本不会作为独立的 Google Drive 文件存在,而是存储在 Google 表格中。您可以通过转到工具 -> 脚本编辑器来访问该脚本。它看起来就像任何其他脚本。奇怪的是,它仍然需要一个名称,但是当您尝试运行某些内容时,它会提示您命名它。
如果您将其连接到电子表格,您肯定想使用上面提到的第二种方法。上面。有趣的是,第一种方法始终有效。当您将其绑定到电子表格时,访问控制有一些细微差别。我个人经常这样做,因为如果我想编辑脚本,通常也希望同时访问数据。这样,它们都存储在一起。
如果您拥有电子表格变量,假设您想要获取名为“Sheet1”的工作表中的所有数据,这是全新 Google 表格文档中第一个工作表的默认名称。您可以像这样操作
var sheet = ss.getSheetByName("Sheet1");
var data = sheet.getDataRange().getValues();
// then do something with the data
这通常需要一两秒钟,即使对于大型(500 多行)电子表格也是如此。获得数据后,您可以执行各种操作。假设您的电子表格如下所示
姓名 | 电子邮件 | 年龄 |
---|---|---|
Andy | [email protected] | 48 |
Ash | [email protected] | 20 |
Char | [email protected] | 18 |
假设它位于“Sheet1”中,您可以增强上面的代码以创建要显示在 main.html 页面上的 HTML 列表,如下所示
data.shift(); // this gets rid of the top row (the one with the headers in it)
var html = "<ul>";
html += data.map(r=>`<li>${r[0]} (${r[1]}) is ${r[2]} years old`).join('');
html += "</ul>";
t.html=html