微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Google 电子表格 (ruby api) 中更新工作表 修改后的脚本:注意:参考:

如何解决在 Google 电子表格 (ruby api) 中更新工作表 修改后的脚本:注意:参考:

我想出了一种将新工作表添加到现有电子表格的方法,但我似乎不知道如何设置添加的工作表的格式。

例如,我可以使用以下方法为电子表格中的第一个工作表(即认工作表)的标题行着色:

  def color_header_row(file)
    spreadsheet_id = file.id
    requests = {
      requests: [
        {
          repeat_cell: {
            range: {
              sheet_id: 0,start_row_index: 0,end_row_index: 1
            },cell: {
              user_entered_format: {
                background_color: { red: 0.0,green: 0.4,blue: 0.0 },horizontal_alignment: "CENTER",text_format: {
                  foreground_color: {
                    red: 1.0,green: 1.0,blue: 1.0
                  },font_size: 12,bold: true
                }
              }
            },fields: 'userEnteredFormat(backgroundColor,textformat,horizontalAlignment)'
          },}
      ]
    }
    sheet_service.batch_update_spreadsheet(spreadsheet_id,requests,{})
  end

请注意,认工作表 sheet_id 为 0 因此我的假设(鉴于 GridRange 在 documentation 中的定义方式)是将 sheet_id 设置为 1 将导致对新添加的引用工作表(实质上是位置 1 的工作表)。但是,当 sheet_id 设置为 1 时,会返回错误 Invalid request(Google::Apis::ClientError)

关于如何格式化非认(即不在电子表格中的第一个位置的工作表)工作表的标题行的任何想法?

解决方法

我相信你的目标和你目前的情况如下。

  • 您想对 Google 电子表格中的工作表使用 repeat_cell,但工作表 ID 0 除外。
  • 您想使用 googleapis for ruby​​ 来实现这一点。
  • 您已经能够使用 Sheets API 获取和放置电子表格的值。

在这种情况下,如何通过电子表格.get的方法使用工作表名称检索工作表ID?在电子表格中,不能使用相同的工作表名称。所以,在这种情况下,我认为这个方向可能对你的情况有用。当这反映到您的脚本中时,它会变成如下所示。

修改后的脚本:

在此脚本中,工作表 ID 是使用工作表名称“Sheet2”检索的,检索到的工作表 ID 用于 repeat_cell 请求。

sheet_name = 'Sheet2' # Please set the sheet name.

spreadsheet_id = file.id
response = sheet_service.get_spreadsheet(spreadsheet_id,ranges: [sheet_name],fields: 'sheets(properties)')
sheet_id = response.sheets[0].properties.sheet_id

requests = {
  requests: [
    {
      repeat_cell: {
        range: {
          sheet_id: sheet_id,start_row_index: 0,end_row_index: 1
        },cell: {
          user_entered_format: {
            background_color: { red: 0.0,green: 0.4,blue: 0.0 },horizontal_alignment: "CENTER",text_format: {
              foreground_color: {
                red: 1.0,green: 1.0,blue: 1.0
              },font_size: 12,bold: true
            }
          }
        },fields: 'userEnteredFormat(backgroundColor,textFormat,horizontalAlignment)'
      },}
  ]
}
sheet_service.batch_update_spreadsheet(spreadsheet_id,requests,{})

注意:

  • 如果您想使用工作表索引检索工作表 ID(例如,第一张和第二张工作表分别为 01。),您还可以使用以下命令脚本。

      sheet_index = 1
      response = sheet_service.get_spreadsheet(spreadsheet_id,fields: 'sheets(properties)')
      sheet_id = response.sheets[sheet_index].properties.sheet_id
    

参考:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。