跳转到内容

使用 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
华夏公益教科书