Javascript 不使用Sheets API从Google Sheets获取数据
我创建了一个应用程序(React Native),要求我显示谷歌表单的回复,因此我创建了回复表 虽然Sheets API是最好的解决方案,但我不希望使用它(除非别无选择) 有没有一种方法可以不使用Google API从工作表中获取数据(csv/json/arrays?/其他任何内容)?我只需要单元格中的值,不需要其他值 注:Javascript 不使用Sheets API从Google Sheets获取数据,javascript,google-apps-script,google-sheets,get,Javascript,Google Apps Script,Google Sheets,Get,我创建了一个应用程序(React Native),要求我显示谷歌表单的回复,因此我创建了回复表 虽然Sheets API是最好的解决方案,但我不希望使用它(除非别无选择) 有没有一种方法可以不使用Google API从工作表中获取数据(csv/json/arrays?/其他任何内容)?我只需要单元格中的值,不需要其他值 注: 我想用JavaScript解析数据 我相信你的目标如下 您希望从Google电子表格中检索值,而不使用Sheets API。 我理解,在本例中,您希望在不使用访问令牌
- 我想用JavaScript解析数据
- 您希望从Google电子表格中检索值,而不使用Sheets API。
- 我理解,在本例中,您希望在不使用访问令牌和API密钥的情况下检索值
- 您希望使用Javascript实现这一点
- 从Javascript请求Web应用程序
- 在Web应用程序中,这些值是从Google电子表格返回的。
- 在此解决方案中,谷歌电子表格不需要公开共享
- 从Javascript的Web应用程序中检索值 用法: 请执行以下流程 1.创建谷歌应用程序脚本的新项目。 Web应用程序的示例脚本是Google应用程序脚本。因此,请创建一个谷歌应用程序脚本项目 如果要直接创建,请访问。在这种情况下,如果您没有登录Google,则会打开登录屏幕。所以请登录谷歌。这样,谷歌应用程序脚本的脚本编辑器就打开了 2.准备脚本。 请将以下脚本(Google Apps脚本)复制并粘贴到脚本编辑器。此脚本用于Web应用程序
- 我相信你的目标如下
function doGet(e) {
const id = e.parameter.spreadsheetId;
const sheetName = e.parameter.sheetName;
const sheet = SpreadsheetApp.openById(id).getSheetByName(sheetName);
const values = sheet.getDataRange().getValues();
return ContentService.createTextOutput(JSON.stringify({values: values})).setMimeType(ContentService.MimeType.JSON);
}
3.部署Web应用程序。
- 这样,脚本将作为所有者运行
- 在这种情况下,请求时不需要访问令牌。我想我推荐这个设置作为你的目标
- 当然,您也可以使用访问令牌。此时,请将其设置为“任何人”。请包括
和https://www.googleapis.com/auth/drive.readonly
访问令牌。访问Web应用程序需要这些作用域https://www.googleapis.com/auth/drive
https://script.google.com/macros/s/###/exec
。
- 当您修改Google Apps脚本时,请重新部署为新版本。这样,修改后的脚本将反映到Web应用程序中。请注意这一点。
const baseUrl = "https://script.google.com/macros/s/###/exec"; // Please set your Web Apps URL.
const para = {
spreadsheetId: "###", // Please set your Google Spreadsheet ID.
sheetName: "Sheet1" // Please set the sheet name you want to retrieve the values.
};
const q = new URLSearchParams(para);
const url = baseUrl + "?" + q;
fetch(url)
.then(res => res.json())
.then(res => {
const values = res.values;
console.log(values);
});
如果要使用curl命令测试上述Web应用程序,还可以使用以下curl命令
$ curl -L "https://script.google.com/macros/s/###/exec?spreadsheetId=###&sheetName=Sheet1"
注:
- 修改Web应用脚本时,请将Web应用重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。请注意这一点。
- 最近,在我的环境中,我已经确认,当使用Javascript从公共共享的电子表格和发布的电子表格检索到Web时,会发生与CORS相关的错误。我担心这样的问题也可能发生在您的环境中。所以为了实现你的目标,我建议使用网络应用。在这种情况下,我已经确认没有错误发生
- 您希望从Google电子表格中检索值,而不使用Sheets API。
- 我理解,在本例中,您希望在不使用访问令牌和API密钥的情况下检索值
- 您希望使用Javascript实现这一点
- 从Javascript请求Web应用程序
- 在Web应用程序中,这些值是从Google电子表格返回的。
- 在此解决方案中,谷歌电子表格不需要公开共享
- 从Javascript的Web应用程序中检索值 用法: 请执行以下流程 1.创建谷歌应用程序脚本的新项目。 Web应用程序的示例脚本是Google应用程序脚本。因此,请创建一个谷歌应用程序脚本项目 如果要直接创建,请访问。在这种情况下,如果您没有登录Google,则会打开登录屏幕。所以请登录谷歌。这样,谷歌应用程序脚本的脚本编辑器就打开了 2.准备脚本。 请将以下脚本(Google Apps脚本)复制并粘贴到脚本编辑器。这
- 我相信你的目标如下