标签: google-spreadsheet-api

从 Google Chrome(内容)扩展程序写入 Google Sheet

我想编写一个 Chrome 扩展程序,它利用内容脚本将一些 JavaScript 注入特定网页,使用 CSS 选择器抓取一些数据,最后将数据存储在 Google 表格中。

我编写了一个 Chrome 扩展程序(内容脚本)来抓取 HTML 页面,我不清楚的地方是如何最好地将数据插入到 Google 表格中。

我开始阅读这个主题,很快就被可用的选项所淹没,需要一些澄清和指导。

我已经确定了三个选项。在最高级别上,它们是:

  1. 通过使用内容脚本抓取数据并在后台脚本中使用 API,在 Chrome 扩展程序中完成所有操作。
  2. 对写入 Google 表格的自定义服务器执行 HTTP POST。
  3. 使用 Google Apps 脚本“后端”和来自 Chrome 扩展程序的 HTTP POST 将工作表发布为网络应用程序。

我赞成选项 1,因为它是独立的。我的问题是:

  • 已用尽解决方案域?
  • 我喜欢选项 1,因为它是独立的,有什么好的理由支持选项 2 或 3?
  • 可以直接从 Chrome 后台脚本使用 Google 电子表格 API 吗?

google-chrome-extension google-spreadsheet-api google-drive-api

4
推荐指数
1
解决办法
2815
查看次数

脚本已完成但返回的值不是受支持的返回类型

我正在尝试从 Google Script 获得响应。但它给了我一个错误:脚本已完成但返回的值不是受支持的返回类型。

这是一些脚本代码:

function doGet(e) {

  var result = 'ERROR PASSWORD';

  if (Pass(e)) {
    result = ParseRequest(e);
  }

  return ContentService.createTextOutput(result);
}


function ParseRequest(e) {
  var result;

  if (!CheckOrAddData(e)) {
    result = 'FAILED';
  } else {
    result = 'ACTIVATED PROMOCODE';
  }

  return result;
}



function Pass(e) {
  var ss = SpreadsheetApp.openById(e.parameters.ssid);
  var sheet = ss.getSheetByName('PASS');
  var sheetPass = sheet.getDataRange().getValue();

  if (e.parameters.pass == sheetPass)
    return true;
  else
    return false;
}


function CheckOrAddData(e) {

  var promoCode = e.parameters.promocode;
  var nickName …
Run Code Online (Sandbox Code Playgroud)

html javascript google-sheets google-apps-script google-spreadsheet-api

4
推荐指数
1
解决办法
6031
查看次数

GoogleApps Utilities.formatDate 返回错误的日期

我有一个 Google 电子表格并尝试从工作表中读取日期。以下脚本以字符串形式提供日期。但这一天太少了。

function testDate() {
  var selectedSpreadsheetId = PropertiesService.getUserProperties().getProperty("spreadsheetId");
  var sheet = SpreadsheetApp.openById(selectedSpreadsheetId);

  var rows = sheet.getDataRange();
  var values = rows.getValues();
  var row = values[0];
  var test = "";
  var test  = Utilities.formatDate(new Date(row[0]), "GMT+1", "MM/dd/yyyy");     
  Logger.log("result is: "+test)
}
Run Code Online (Sandbox Code Playgroud)

您需要创建一个 Google 电子表格并在左上角的单元格中输入日期 14.10.2017。示例中给出的日期是 GERMAN 日期格式。

日志中的结果是 10/13/2017 但应该是 10/14/2017

我知道 Google 使用“普通”Java SimpleDateFormat

为什么?

google-apps-script google-spreadsheet-api

4
推荐指数
1
解决办法
920
查看次数

Google Spreashsheet中查询中的动态图纸名称

在Google电子表格中,我想查询其他工作表中的数据,但问题是工作表的名称是否存在于单元格中.那么在QUERY函数中有一种方法可以动态提到工作表名称.基本上我试图做这样的事情,但动态表名称:

=QUERY('2012'!A2:F;"select C, sum(F) where A='December' group by C order by sum(F) desc")

我尝试这样做,但我得到Parse Error:

=QUERY(INDIRECT("Overview!L5")!A2:F;"select C, sum(F) where A='December' group by C order by sum(F) desc")
Run Code Online (Sandbox Code Playgroud)

在哪个概述!L5是要查询的工作表名称的单元格.我也尝试在INDIRECT周围连接引号,但这也没有用.

我认为我正在尝试从查询中做出很明显的事情,即获取按其他单元格中的值分组的单元格中的值的总和.

google-api google-sheets google-spreadsheet-api

3
推荐指数
1
解决办法
8818
查看次数

电子表格列表Gdata OAuth2

在Gdata中使用电子表格api获取电子表格列表,

Oauth1 Way

spreadSheetService = gdata.spreadsheet.service.SpreadsheetsService()
spreadSheetService.SetOAuthInputParameters(gdata.auth.OAuthSignatureMethod.HMAC_SHA1,self.CONSUMER_KEY,self.CONSUMER_SECRET,two_legged_oauth=True, requestor_id=self.requestor_id)
spreadSheetService.GetSpreadsheetsFeed(query = q)
Run Code Online (Sandbox Code Playgroud)

但由于spreadSheetService不适用于OAuth2,因此不会解决问题#594

如何查询电子表格列表gdata.spreadsheets.client.SpreadsheetClient

gdata google-spreadsheet-api google-apps-marketplace google-oauth

3
推荐指数
1
解决办法
4100
查看次数

更新Google Spreadsheets中的单元格会返回错误"缺少资源版本ID"/"远程服务器返回错误:(400)错误请求."

我想更新Google Spreadsheets中的单元格值,但不幸的是收到错误:

Google.GData.Client.GDataRequestException was unhandled
  HResult=-2146233088
  Message=Execution of request failed: https://spreadsheets.google.com/feeds/cells/1nW8nxoS2l9pbj6dctreEfKHNXmsfbbsCAvOd7TIj4Bo/od6/private/full/R1C1
  Source=Google.GData.Client
  ResponseString=Missing resource version ID
  StackTrace:
   at Google.GData.Client.GDataRequest.Execute()
   ...
   at System.Threading.ThreadHelper.ThreadStart()
InnerException: System.Net.WebException
   HResult=-2146233079
   Message=The remote server returned an error: (400) Bad Request.
   Source=System
   StackTrace:
        at System.Net.HttpWebRequest.GetResponse()
        at Google.GData.Client.GDataRequest.Execute()
Run Code Online (Sandbox Code Playgroud)

我的代码非常简单,基于从https://developers.google.com/google-apps/spreadsheets/?csw=1#changing_contents_of_a_cell下载的示例:

        SpreadsheetsService service = new SpreadsheetsService("MySpreadsheetIntegration-v1");

        // TODO: Authorize the service object for a specific user (see other sections)
        service.setUserCredentials("...", "...");            

        // Instantiate a SpreadsheetQuery object to retrieve spreadsheets.
        SpreadsheetQuery query = new SpreadsheetQuery();

        // Make a request …
Run Code Online (Sandbox Code Playgroud)

c# google-sheets google-data-api google-spreadsheet-api

3
推荐指数
1
解决办法
2401
查看次数

如何在没有菜单栏的情况下共享谷歌电子表格?

如何在没有菜单栏的情况下共享谷歌电子表格(文件编辑视图插入...)?或者如何在共享谷歌电子表格时隐藏主菜单.

google-sheets google-spreadsheet-api

3
推荐指数
1
解决办法
7085
查看次数

如何获得笔记或评论

我有一个包含单元格注释/注释的Excel,我已将其上传到Google云端硬盘,然后将其转换为Google Spreadsheet。我如何检索单元格A1的注释?

API没有描述如何从一个细胞的说明或注释。

google-sheets google-docs-api google-spreadsheet-api

3
推荐指数
1
解决办法
5633
查看次数

谷歌电子表格公式,以获得列中的数字排名

我正在寻找谷歌电子表格的公式/功能.抱歉标题,但让我解释一下.我有一个包含5行数字的列:

2
5
9
7
4
Run Code Online (Sandbox Code Playgroud)

我想循环遍历行并创建另一列,它将告诉我每个单元格的排名.所以,例如"2"是最低的,所以它得到1."9"是最高的它得到5(最高等级,因为有5行),"7"是第二高,所以它得到4,等等所以,我想实现这个:

1
3
5
4
2
Run Code Online (Sandbox Code Playgroud)

所以,换句话说.对于新列中的每个单元格,我需要设置其他列中相关数字的高度值.谁能帮我这个?我正在使用Google电子表格.

excel spreadsheet excel-formula google-sheets google-spreadsheet-api

3
推荐指数
1
解决办法
5211
查看次数

谷歌电子表格API v4 - 查找值

如何使用新的api v4搜索谷歌电子表格.

在api docs中我找到了find/replace,但它找不到单元格,它只替换了单元格.那么有什么方法可以在google电子表格中找到一个除了获取所有数据并在其中搜索的强力方法之外的值的方法吗?

google-sheets google-spreadsheet-api google-sheets-api

3
推荐指数
1
解决办法
2514
查看次数