标签: google-sheets-api

如何在谷歌工作表的google-api-python-client中使用ValueRenderOption

这是一段代码:

import ast
from oauth2client import file, client, tools
from oauth2client.service_account import ServiceAccountCredentials
from httplib2 import Http
from apiclient.discovery import build
from apiclient import discovery

SCOPE = 'https://www.googleapis.com/auth/spreadsheets'
CREDJSON = "some-cred-file-downloaded-from-dev-console.json"

def google_credentials(jsoncred=CREDJSON, scope=SCOPE):
    return ServiceAccountCredentials.from_json_keyfile_name(jsoncred, scope)


def csv_arrays(creds, key):

    (SHEETS, sheets) = sheets_fetch(creds, key)

    wks = sheets
    def create_filename(arg):
        filename = key.prefix + "_" + arg.get("properties, {}).get("title","Sheet1")
        filename = filename.replace(" ", "_")
        print (filename)
        return filename
    return [(create_filename(ws), ast.literal_eval(repr(SHEETS.spreadsheets().values().get(spreadsheetId=key.key, range=(ws.get("properties", {}).get("title", "Sheet1"))).execute().get('values',[])))) for ws in wks] #.decode("utf-8")

def sheets_fetch(creds, …
Run Code Online (Sandbox Code Playgroud)

google-api-python-client google-sheets-api

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

Google Sheets API v4 service_account - 禁止:调用者没有权限(Google::Apis::ClientError)

红宝石:2.3.1

导轨:5.0.0

我需要通过 Google Sheets API 访问和更新我的私人 Google Sheet。最终这将通过我的 Rails 应用程序中的重复后台作业来完成。因此,我在 Google Cloud Console 中设置了一个服务帐户。

但是要开始使用 Google Sheets API,我创建了一个脚本:

require 'google/apis/sheets_v4'

ENV["GOOGLE_ACCOUNT_TYPE"] = 'service_account'
ENV["GOOGLE_CLIENT_EMAIL"] = '<client_email_from_downloaded_json_here>'
ENV["GOOGLE_PRIVATE_KEY"] = "<private_key_from_downloaded_json_here>"

SCOPE = Google::Apis::SheetsV4::AUTH_SPREADSHEETS

authorization = Google::Auth.get_application_default(SCOPE)

# Initialize the API
service = Google::Apis::SheetsV4::SheetsService.new
service.authorization = authorization

spreadsheet_id = '<MY SPREADSHEET ID HERE>'

sheet_name = 'Sheet1'

range = "#{sheet_name}!A2:B"

response = service.get_spreadsheet_values(spreadsheet_id, range)

puts 'No data found.' if response.values.empty?

response.values.each do |row|
  # Print columns A and B, which correspond to …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails google-oauth google-api-ruby-client google-sheets-api

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

如何使用Google表格API python向Google表格添加下拉列表

使用Google Sheets API python如何dropdown list使用list items[是] 添加到谷歌工作表.不,可能会邀请朋友,他们是否会参加活动.

我在这里查看了google开发者工作表api文档,但未提供任何示例.

寻找JSON结构.

结果将是这样的:

在此输入图像描述

谢谢!

python excel google-api-client google-sheets-api

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

Google Apps脚本中是否可以设置行高以适合数据

在Google表格中,选择一系列行并右键单击其中的一行后,“行高”下有一个适合数据的选项。我想在脚本中执行此操作。

我所有的搜索都拒绝,但我充满希望。列被很好地覆盖了,但行似乎没有被覆盖。

谢谢。

google-apps-script google-sheets-api

1
推荐指数
2
解决办法
2763
查看次数

Google Sheets API:从公开表中读取单个单元格值

我正在尝试使用PHP / JS为WordPress写一个简单的插件。该插件只有一个目标,即创建一个小部件。对于不熟悉WordPress插件实现的人来说,并不太复杂-我可以像往常一样使用JS / PHP。因此,出于这个问题的目的,单个PHP / HTML文件可能会提供我正在寻找的答案。

我有一个具有以下共享设置的可公开访问的工作表:

电子表格设置

我现在要做的就是检索单个工作表上单个单元格的值。工作表被调用Live Summary,单元格为E20

电子表格

我已经使用oAuth 2.0身份验证进行了这项工作。但是,我不希望用户必须进行身份验证才能看到此信息。

我希望我的网站始终显示此单元格的值,就像它是网站的功能一样,或者好像我是从安装了WordPress的MySQL数据库中提取它一样。

它应该看起来如何

我已经读过有关使用Google Sheets API中的某些GET端点的信息,但是对于我来说,如果我不使用oAuth令牌,我什至不知道从哪里开始。

有人可以请a)告诉我是否可行,如果可以,请b)指出正确的方向以开始使用?

最好使用JavaScript-但我也可以应付PHP。

javascript google-sheets-api

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

Google App Script中的类似SQL的查询功能可从Google表格中提取数据

我正在尝试构建一个Google Apps脚本网络应用程序,该应用程序将从Google表格中提取数据并在浏览器的HTML页面中以行和列显示它们。

通过遵循示例等,我编写了此代码!

function doGet(){
return HtmlService
       .createTemplateFromFile('Report3')
       .evaluate();
}

function getData(){

var spreadsheetId = '1Z6G2PTJviFKbXg9lWfesFUrvc3NSIAC7jGvhKiDGdcY';
var rangeName = 'Payments!A:D';

var values = Sheets
             .Spreadsheets
             .Values
             .get(spreadsheetId,rangeName)
             .values;
return values;

}
Run Code Online (Sandbox Code Playgroud)

通过以下HTML模板提取位于A,B,C,D列中的数据并正确显示

<? var data = getData(); ?>
    <table>
      <? for (var i = 0; i < data.length; i++) { ?>
        <tr>
          <? for (var j = 0; j < data[i].length; j++) { ?>
            <td><?= data[i][j] ?></td>
          <? } ?>
        </tr>
      <? } ?>
    </table>
Run Code Online (Sandbox Code Playgroud)

与其从A,B,C,DI获取所有行和所有列,不如运行SQL查询以使用WHERE子句(如SQL)检索某些列。我了解在电子表格中起作用的= QUERY()函数在GAS内部不起作用。所以我的下一个尝试是通过使用getBatch方法来检索某些行..这就是我得到错误的地方

在这种情况下,我想排除C列,仅获取A,B和D,E引发错误的代码如下:

function getData2(){ …
Run Code Online (Sandbox Code Playgroud)

sql sqlite google-apps-script google-sheets-api

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

"message" : "无效的请求 [0].updateCells: 尝试写入列:26,超出最后请求的列:25"

使用 Google Sheets API v4 更新 Google 电子表格上的 30 列时出现此错误。

使用日期值作为字符串更新谷歌电子表格列标题的代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd");

Calendar calendar = new GregorianCalendar(2017, 10, 01);

// # of days
for (int i = 0; i < 30; i++) {
    String varDate = sdf.format(calendar.getTime());
    System.out.println("Date : " + varDate);
    calendar.add(Calendar.DAY_OF_MONTH, 1);

    values.add(new CellData().setUserEnteredValue(new ExtendedValue().setStringValue(varDate)));

    requests.add(new Request().setUpdateCells(new UpdateCellsRequest()
        .setStart(new GridCoordinate().setSheetId(0).setRowIndex(0).setColumnIndex(i))
        .setRows(Arrays.asList(new RowData().setValues(values))).setFields("*")));

}

BatchUpdateSpreadsheetRequest batchUpdateRequest = new BatchUpdateSpreadsheetRequest().setRequests(requests);
service.spreadsheets().batchUpdate(spreadsheetID, batchUpdateRequest).execute();
Run Code Online (Sandbox Code Playgroud)

错误日志:

    com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
  "code" : 400,
  "errors" : [ …
Run Code Online (Sandbox Code Playgroud)

java google-sheets-api

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

如何以相对方式复制数据验证,特别是从范围(带有或不带有脚本)的Google表格中列出数据

我创建了一个电子表格来跟踪约会。在此电子表格中,我具有动态相关的下拉列表,因此列表1中的选择将填充列表2中的选项。这如下:

单元格C2:客户端-客户端1或客户端2。(在此示例中使用,实际列表将扩展。)

如果单元格C2 =客户端1,则地址下拉列表如下:

单元格C3:地址-地址1或地址2。

如果单元格C2 =客户端2,则地址下拉列表如下:

单元格C3:地址-地址3或地址4。

客户端列表的数据验证很简单,因为它是常量,可以在列之间进行复制。但是,不能从多个地址复制对从属地址列表的数据验证,因为它始终引用C列,并且与相对客户列表失去连接。

单元格C3(地址列表)的实际数据验证如下:

单元格范围='DIARY(V-2.1)'!C3

条件='日记(V-2.1)'!C53:C55

单元格C53:C55由一个过滤器公式填充,该公式将根据单元格C2中客户端的选择对相关地址进行排序,从而依次填充C3中的地址列表。

可能值得注意的是,我每列有10组这些约会空位(每天10个),所以我对每个单独的约会都使用了过滤功能,因此它们可以独立工作,但是即使这很繁琐,所以我需要能够从C列开始复制该列(或仅进行数据验证),并使它相对于该列中的过滤器功能保持不变。

请查看下面的示例电子表格链接,这一切都说得通!在示例中,我已将C列复制到D列,并且地址列表的数据验证已针对所有十个约会空位分离。(所有编辑都是免费的。)

https://docs.google.com/spreadsheets/d/1sOlQEzG1D29RaY86YeR1Da--c8t94J-ZAGjv52U4dsY/edit#gid=1950191921

注意:这些单元格必须是下拉列表-范围列表-用于此特定电子表格的功能。

如果有人可以提供帮助,那么我将不胜感激,因为我勤奋地搜索了论坛并且找不到解决方案。我确实看过了这个视频(这是我的头),它似乎是使用Java脚本实现的:

https://www.youtube.com/watch?v=ZiYnuZ8MwgM&feature=youtu.be

spreadsheet google-sheets-api google-sheets-query google-apps-script-editor

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

如何直接使用 Google 表格 REST API 创建表格

我有一个 PHP 应用程序,不幸的是,它已经使用了 1.1.4 版的 Google Client API,我无法更改它,这使得我无法使用 2.X 版的 Google PHP Sheets API。

但是,我希望能够直接使用 Google Sheets REST API,进行我自己的 curl 调用(如果这很有趣,可以使用 Guzzle)。

我是谷歌 API 的新手,我已经翻遍了他们的文档,但我一直无法弄清楚如何做一些基本的事情。

出于这个问题的目的,我想简单地通过 API 使用 POSTman 之类的工具创建一个新的 Google 电子表格。

我知道我首先必须通过https://www.googleapis.com/auth/spreadsheets. 问题是我不太清楚如何通过这个调用。我假设它需要 GET,因为 POST 返回一个错误,指出该方法不可用。

获得该令牌后,我如何在 POST 时使用它 https://sheets.googleapis.com/v4/spreadsheets

有人可以提供一个非常基本的示例,说明我可能会直接进行调用以简单地创建一个非常基本的默认电子表格吗?

还是我在想这一切都错了?感谢所有帮助。

google-oauth google-sheets-api

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

使用 google-sheets-api 在 Google Sheet 中插入评论

是否可以使用 Google Sheet API 向 Google Sheet 中的单元格添加评论?我搜索了https://developers.google.com/sheets/api/,但没有找到执行此操作的命令。

google-sheets-api

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