如何仅使用Javascript访问Google Sheet电子表格?
我只想使用JavaScript访问Google电子表格(没有.NET、C#、Java等) 我来到这里,得知JavaScript没有API来访问Google表单,我感到震惊如何仅使用Javascript访问Google Sheet电子表格?,javascript,google-api,google-sheets-api,google-data-api,google-api-js-client,Javascript,Google Api,Google Sheets Api,Google Data Api,Google Api Js Client,我只想使用JavaScript访问Google电子表格(没有.NET、C#、Java等) 我来到这里,得知JavaScript没有API来访问Google表单,我感到震惊 请告诉我如何使用JavaScript或其任何框架(如jQuery)访问(创建/编辑/删除)Google工作表。对不起,这是一个糟糕的答案。显然,这已经是近两年来的一次失败,所以不要屏住呼吸 这是你可以提出的正式要求 可能最接近的方法是使用自己的JS库公开所需的任何子集。虽然我想自己有一个更好的解决方案 编辑:这是在谷歌文档的a
请告诉我如何使用JavaScript或其任何框架(如jQuery)访问(创建/编辑/删除)Google工作表。对不起,这是一个糟糕的答案。显然,这已经是近两年来的一次失败,所以不要屏住呼吸 这是你可以提出的正式要求 可能最接近的方法是使用自己的JS库公开所需的任何子集。虽然我想自己有一个更好的解决方案 编辑:这是在谷歌文档的api发布之前回答的。有关最新信息,请参阅和 信息 看起来你可以,但使用起来很痛苦。它涉及到使用谷歌数据API “JavaScript客户端库具有日历、联系人、博客和Google Finance的助手方法。但是,您可以将其与任何Google Data API一起使用,以访问经过身份验证的/私有的源。此示例使用DocList API。”
还有一个编写与电子表格接口的小工具的例子:'JavaScript访问谷歌文档'的实现将非常繁琐,而且谷歌文档也不是那么简单。我有一些很好的链接可供分享,通过这些链接,您可以实现对gdoc的js访问:
这些可能对您有所帮助。我创建了一个简单的javascript库,通过JSON api检索谷歌电子表格数据(如果发布): 你可以在这里看到它的作用:
对于这种类型的东西,您应该使用。该系统就是为此目的而设计的 这里是要点。 可以使用创建电子表格。目前无法使用API删除电子表格(请阅读文档)。可以将GoogleDocsAPI视为创建和查找文档的途径 可以使用添加/删除电子表格中的工作表 通过或更新电子表格 可以通过上面提到的Google电子表格API读取电子表格,或者,仅对于已发布的表格,可以使用来查询数据(可以返回CSV、JSON或HTML表格格式的结果)
忘记jQuery吧。只有在遍历DOM时,jQuery才真正有价值。由于GAS(googleapps脚本)不使用DOM,jQuery不会为代码增加任何价值。坚持香草口味
我真的很惊讶,还没有人在答复中提供这一信息。不仅可以完成,而且使用vanilla JS也相对容易。唯一的例外是相对较新的谷歌可视化API(截至2011年)。可视化API还专门通过HTTP查询字符串URI工作。在这个快速变化的世界中,这些链接中的大多数都已过时 现在您可以使用:
- 和其他人
//假设您有一张第一封、最后一封电子邮件,并且您希望返回
//用户已将光标放置在的行。
函数getActiveEmail(){
var activeSheet=SpreadsheetApp.getActiveSheet();
var activeRow=.getActiveCell().getRow();
var email=activeSheet.getRange(activeRow,3.getValue();
回复邮件;
}
您也可以。您可以使用和tabletop.js来完成
2018年1月更新:去年我在回答这个问题时,忽略了第三种使用JavaScript访问Google API的方法,那就是使用Node.js应用程序的客户端库,所以我在下面添加了它 现在是2017年3月,这里的大多数答案都过时了——现在公认的答案是指使用旧API版本的库。最新的答案是:您只能使用JavaScript进行访问。今天,谷歌提供了三种方法:
- 您在中为应用程序编写代码,它们可以通过两种不同的方式访问Google工作表:
- (本机对象支持;);土生土长的更容易,但通常比
- (直接访问最新的Google Sheets REST API[见下文];)
- 下面是使用客户机库的示例
- 最新的API表(v4)在谷歌I/O 2016上发布;它比以前的所有版本都强大得多,使开发人员能够通过编程访问Sheets UI中的大多数功能
- 下面是帮助您入门的API示例
- 以下是用于核心API请求的(JSON有效负载)
- 如果你对Python没有“过敏”(如果你是,就假装它是伪代码;),我制作了几个视频,其中有更多使用API的“真实世界”示例,你可以从中学习,如果需要的话可以迁移到JS(注:即使是Python代码,大多数API请求都有JSON,并且很容易移植到JS):
- (深潜代码)
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}&includeGridData=true
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{sheetName}!{cellRange}?key={yourAPIKey}
var url = "https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}&includeGridData=true";
axios.get(url)
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
<!-- Include the sheets library -->
<script src="RGraph.common.sheets.js"></script>
<!-- Include these two RGraph libraries to make the chart -->
<script src="RGraph.common.key.js"></script>
<script src="RGraph.bar.js"></script>
<script>
// Create a new RGraph Sheets object using the spreadsheet's key and
// the callback function that creates the chart. The RGraph.Sheets object is
// passed to the callback function as an argument so it doesn't need to be
// assigned to a variable when it's created
new RGraph.Sheets('1ncvARBgXaDjzuca9i7Jyep6JTv9kms-bbIzyAxbaT0E', function (sheet)
{
// Get the labels from the spreadsheet by retrieving part of the first row
var labels = sheet.get('A2:A7');
// Use the column headers (ie the names) as the key
var key = sheet.get('B1:E1');
// Get the data from the sheet as the data for the chart
var data = [
sheet.get('B2:E2'), // January
sheet.get('B3:E3'), // February
sheet.get('B4:E4'), // March
sheet.get('B5:E5'), // April
sheet.get('B6:E6'), // May
sheet.get('B7:E7') // June
];
// Create and configure the chart; using the information retrieved above
// from the spreadsheet
var bar = new RGraph.Bar({
id: 'cvs',
data: data,
options: {
backgroundGridVlines: false,
backgroundGridBorder: false,
xaxisLabels: labels,
xaxisLabelsOffsety: 5,
colors: ['#A8E6CF','#DCEDC1','#FFD3B6','#FFAAA5'],
shadow: false,
colorsStroke: 'rgba(0,0,0,0)',
yaxis: false,
marginLeft: 40,
marginBottom: 35,
marginRight: 40,
key: key,
keyBoxed: false,
keyPosition: 'margin',
keyTextSize: 12,
textSize: 12,
textAccessible: false,
axesColor: '#aaa'
}
}).wave();
});
</script>