【问题标题】:Connecting chrome extension to Google spreadsheet将 chrome 扩展程序连接到 Google 电子表格
【发布时间】:2019-11-19 19:47:58
【问题描述】:

我计划开发一个 chrome 扩展程序,它将数据添加/附加到我的 Google 电子表格中。网上有多种选择,我是初学者,不知道实现相同目标的确切途径。我也是 JavaScript 新手,这让我很难理解互联网上资源的内容。请推荐一些好的链接和资源,如果我能得到一些样本就更好了。

提前谢谢你。

【问题讨论】:

  • freecodecamp.org 可以帮助你学习 Javascript。您需要扎实的 JS 基础才能开发 Chrome 扩展程序和 Google 表格插件(取决于您想要做什么,您可能需要同时做这两个)。

标签: google-apps-script google-sheets google-chrome-extension google-sheets-api


【解决方案1】:

一个简单的方法是制作一个调用应用程序脚本 WebApp 的 Chrome 扩展程序,使用 apps script 您可以轻松地与电子表格交互,使用应用程序脚本部署 WebApp 并不困难。 因此,Chrome 扩展程序只需调用 WebApp 即可在电子表格上执行所需的操作。

第二种可能更简单的方法是使用应用脚本开发add-on,插件在电子表格端而不是浏览器上运行。

所以它不是 chrome 扩展,但我相信这种方法最终可能足以满足您的目的,并且它可能会缩短实现您尝试的任何目标的路径。


最简单的网络应用示例:

  • 转到 script.google.com
  • 粘贴这个:
function doGet(){
    var appData = {
      "title": "WebApp JSON example",
      "content": "Welcome to this example"
    };
    var JSONString = JSON.stringify(appData);
    var JSONOutput = ContentService.createTextOutput(JSONString);
    JSONOutput.setMimeType(ContentService.MimeType.JSON);
    return JSONOutput
}
  • 点击发布 --> 部署为 WebApp
  • 获取链接并将其粘贴到浏览器中

如您所见,通过输入此链接,您将在应用脚本上执行 doGet() 函数中的内容。

因此,您可以在 Chrome 扩展程序上调用类似这样的 web 应用程序,并以一种简单的方式在电子表格上完成您需要完成的任何事情。

【讨论】:

  • 你好 Yuri,我按照你说的做了,看起来第一种方法对我来说是可行的。根据您的建议和教程,我访问了电子表格并创建了一个小函数,然后将其部署为 Web 应用程序。当我直接从脚本编辑器运行这个脚本时,我可以在工作表上附加一行。但是我想从我的扩展中将数据传递给这个函数,以便将它附加到工作表中。为此,我需要调用这个 WebApp。 能否请您推荐一些教程,可以在我的扩展程序中使用 JS 文件调用 Web 应用程序。 非常感谢。
  • 我从上面的脚本中粘贴了链接,我得到了以下错误:-TypeError: Cannot call method "toUpperCase" of undefined. (line 5, file "Code", project "test")。我非常感谢你的帮助,但我仍然无法弄清楚如何从我的扩展程序中调用这个 webapp。请帮忙。
  • 此错误与粘贴的代码无关,因为该代码根本没有'toUpperCase'功能。我建议你从乞讨开始玩应用脚本。
  • 我创建了一个 Web 脚本并将其部署为一个 Web 应用程序,并使用生成的链接通过我的扩展程序调用它。这里是:function onclick3 () { chrome.tabs.query({currentWindow: true, active: true, lastFocusedWindow: true}, function (tabs) { var url = tabs[0].url; var url3 = "https://script.google.com/macros/s/1231231sdfsfd/exec"; var x = new XMLHttpRequest(); x.open('POST',url3); x.send(); }) } 但是网络应用脚本没有被执行。我是否以错误的方式发送请求?是否有任何我可能缺少的先决条件?
【解决方案2】:

Javascript Tutorial 是学习 JS 和许多其他语言的好地方。

How To Create A Google Chrome Extension: A Step-by-Step Tutorial 是一个 8 分钟的简短视频,易于理解。

通过这两个参考,我能够构建我每天在办公室使用的第一个扩展。

【讨论】:

  • 谢谢,Jason,但我不可能知道如何将 chrome 扩展程序连接到电子表格
  • 嗯,是的,但是您要求“请推荐一些好的链接和资源,如果我能得到一些样本就更好了”。我提供的是我用来学习如何构建我的脚本的资源,但如果你想从我这里得到关于如何将 chrome 扩展连接到电子表格的提示,请查看我的第二个答案。
  • 听起来您似乎想采取更简单的方法,我可以向您保证,学习这些东西会让人耳目一新,只是来这里问技术问题。这里的人们愿意提供帮助,但相信我,他们喜欢看到你付出努力。如果没有,您的问题可能会被标记为未尝试研究。试试这些链接,你会学到很多东西,你想做的事情,你将能够轻松完成。
  • 我创建了一个 Web 脚本并将其部署为一个 Web 应用程序,并使用生成的链接通过我的扩展程序调用它。这里是:function onclick3 () { chrome.tabs.query({currentWindow: true, active: true, lastFocusedWindow: true}, function (tabs) { var url = tabs[0].url; var url3 = "https://script.google.com/macros/s/1231231sdfsfd/exec"; var x = new XMLHttpRequest(); x.open('POST',url3); x.send(); }) } 但是网络应用脚本没有被执行。我是否以错误的方式发送请求?是否有任何我可能缺少的先决条件?
  • 我不是很喜欢 chrome 扩展,你应该尝试向其他资源发出请求,看看问题是在网络应用中还是在你的电话中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-27
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
相关资源
最近更新 更多