当前位置: 首页 > 知识库问答 >
问题:

在最后一行之前添加值行并保留最后一行格式

燕野
2023-03-14


我有一个作为模板的电子表格,最后两行以某种特定的方式格式化(颜色和字体)。

它看起来像这样:

| header 1     | header 2     | header 3     |
| placeholder1 | placeholder2 | placeholder3 |
| color footer1|color footer2 | color footer2|

我想做的是插入尽可能多的“占位符”行,让最后一行“滑”下来。

到目前为止,我尝试了values.update,它确实插入了新行,但不会向下移动最后一行的颜色。这样我就可以在电子表格中找到我想要的数据,但是颜色格式错误(基本上第三行总是有彩色背景,而最后一行没有)。

我想做的伪代码是:

  1. 计算我需要添加多少占位符行,
  2. 获取电子表格
  3. 剪切粘贴最后两行到新位置
  4. 获取电子表格的值
  5. 更新值(替换占位符,插入新行,更新总计)

我不确定这是最好的方式(似乎有点复杂)。谁能给我指一下正确的方向吗?

共有2个答案

陆翔飞
2023-03-14

所以最后我决定使用spreadsheet.get来检索模板。

我将标志includeGridData设置为true,它会发回每个单元格的所有信息。

这是一个很大的物体,但它有我所需要的一切。

然后我克隆模板行,生成所需的副本。

最后,我把这些新行放回由get返回的行对象中(没有模板行),然后使用batchUpdate更新电子表格。

大概是这样的:

async updateSpreadsheetCells(clone, data, spreadSheetDataRows) {
  const request = {
    spreadsheetId: clone.id,
    resource: {
      requests: [
        {
          updateCells: {
            fields: '*',
            range: {
              sheetId: 0,
              startRowIndex: 0,
              endRowIndex: endRow // value dynamically calculated
              startColumnIndex: 0,
              endColumnIndex: this.endColumnIndex
            },
            rows: spreadSheetDataRows //this will replace all the rows
          }
        }
      ]
    }
  };
  await this.googleSheetService.batchUpdateSpreadSheet(request);
}

这是一个快速的概述,代码有点复杂,没有必要在这里发布。希望这将帮助其他人。

国斌斌
2023-03-14

您可以应用条件格式,使其始终与最终单元格的数据相匹配,而不是将格式应用于单元格。

例如,通过此链接,您可以通过将以下条件格式应用于A2:Z999,从而始终应用于最后一行

=阵列公式(行($A2:$A)=最大值((行($A2:$A))*($A2:$A

或者有一些数据总是只会出现在最后一行中,并根据它的格式匹配该数据。

但是,请注意,如果您正在创建全新的行,条件格式可能会超过行Z,在这种情况下,您的条件格式不再适用(无需手动更新它适用于哪些行,扩展它的范围)。这可能会限制此方法的可用性,这取决于您需要它做什么。

 类似资料:
  • 我插入数据到一个电子表格与新的谷歌工作表API v4,代码完美的工作和数据它是插入良好的工作表。 但是如何找出最后一行有数据来添加后面的数据呢? A1符号中有什么技巧吗? 我需要一个相当于。

  • 我在试验视图。是否有可能在最后第二行编写size()方法而不使用lambdas??具体如下:

  • 问题内容: 当我不知道行数时,是否可以使网格项目从第一行到最后一行? 可以说我有以下HTML,其中的框数未知。 如何使第一个网格线到最后一个网格线的第三个跨度? 问题答案: 您可以将grid-row-start添加到该框中的css,并将其设置为跨越一个非常大的数字。 编辑-免责声明: 这是非最佳解决方案,并非在所有浏览器中都有效,请当心!尽管这在某些浏览器(Chrome)中似乎可行,但其他浏览器(

  • 问题内容: 该数组包含一个项目列表,我想将其转换为字符串,但是我不知道如何使最后一个项目前带有&/和而不是逗号。 应该成为 这是常规的爆破功能: 有什么简单的方法吗? 问题答案: 可处理任何数量项目的长衬板: 或者,如果您 真的 更喜欢冗长: 关键是,这种切片,合并,过滤和联接可以正确处理 所有 情况,包括0、1和2项目,而无需额外的语句。而且它恰好可以折叠成单线。

  • 我有大量数据,需要清理。B列为关键列;如果B列中有空值,则可以删除该行的其余部分。 我在B列上排序,所有的空值都在表的底部。在C-BZ列中有数据,但在B中没有。我想自动识别B中最后一个非空值(假设它是单元格B3841),然后删除工作表底部的3842行。我的数据集每天都在变化。 下面的代码对B列进行排序,然后删除所有完全空的行。我还想删除在B列中为null但在C或D或任何其他行中可能有数据的行。

  • 我需要将数据框的值添加到我的谷歌电子表格中最后一行记录的末尾,但是我不能。每次我使用下面的代码时,它都会订阅上面的信息。我正在使用一个通用库来更新谷歌工作表电子表格中的数据。