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

使用api在google电子表格中的特定列末尾追加一个新单元格(行)

阮炯
2023-03-14

无法找到通过v4 API在google sheets中的特定列末尾追加数据的方法。

我知道我们可以使用append API追加一个全新的行:https://developers.google.com/sheets/api/samples/writing#append_values

但这会从第一列开始添加一个全新的行。我只需要从特定列开始推送/追加数据。

下面是我正在处理的工作表:

现在我需要添加多个类别,如“Ca1”和“Cat2”到类别列。我知道我可以将不被填充/编辑的数据作为null传递给列,比如:

"majorDimension": "ROWS",
"values": [ 
           [null,"Cat1",null]
           [null,"Cat2",null]
          ]

但是在这之后,如果下次我需要使用相同的格式将数据附加到标签列(例如Tag1,Tag2),则生成的工作表将变成:

"majorDimension": "ROWS",
    "values": [ 
               [null,null,"Tag1"]
               [null,null,"Tag2"]
              ]

因此,一旦数据变得巨大,如果没有解决方案,像C6单元格这样的空格将会增加。我只需要维护这样的数据(仅按列)。

有没有在特定列的末尾追加数据的解决方案?

共有2个答案

通正平
2023-03-14

假设:

>

  • 是一个表对象(例如SpreadsheetApp.getActive(). getSheetByName("Sheet1");),

    C列(3)是要粘贴数据的列,

    列C在C1和最后一个包含内容的C值之间没有空单元格。

    数据具有以下格式:

    data = [ 
                ["Tag1"]
                ["Tag2"],
                ...
               ]
    

    然后可以使用这个泛型表达式:

    const cSize=sheet.getRange('C:C').getValues().filter(String).length; 
    
    sheet.getRange(cSize+1,3,data.length,1).setValues(data);
    

    其中getRange(行,列,数字行,数字列)。

  • 洪旻
    2023-03-14

    可以使用现有值确定下一个空单元格,然后从中定义范围。

    1. 获取列值
    GET https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/C:C
    
    var lastRow = ValueRange.values.length;
    
    var range = 'Sheet1!C' + (lastRow+1);
    
    Sheets.Spreadsheets.Values.update(
      {
        'majorDimension': 'COLUMNS',
        'values': [['Tag1']]
      },
      spreadsheetId,
      range, 
      { valueInputOption: 'USER_ENTERED' }
    );
    
     类似资料:
    • 我做了一个PHP脚本,使用api v4将一些信息导出到谷歌电子表格。当我尝试向单元格中添加注释时,我应该为每个注释向API发出请求,这对我来说是一个问题,前面已经解释过了。 我目前的方法是以下一种,我试图在单行的每一列上添加注释($HeaderNotes是一个数组): 在这种方法中,注释是一个接一个地添加的(使用循环),并且工作正常。主要的问题是,我做的请求和notes一样多,而谷歌的Cuota有

    • 我已经通过谷歌官方文档《开发者指南》API中提到的一个简单Java代码成功地在我的Google Drive帐户的现有电子表格中创建了一个新的工作表,但我想通过Java代码在我的Google Drive帐户中创建一个新的电子表格。在链接中,他们没有提到这方面的任何示例代码。我已经在Spreadservice类中看到了不同的可用方法。 如何使用Google电子表格API实现这一点?

    • 我有一个谷歌电子表格,里面有多张表格,我想把每一张表格复制到一个新的电子表格中,并在一个特定的单元格中以文本命名新的电子表格。我很高兴运行脚本多次,所以我想让它复制活动表。 即。我所拥有的=称为“颜色”的电子表格——工作表1=“红色”,工作表2=“蓝色”,工作表3=“黄色”,等等。 我想要什么= 名为“红色”的电子表格。电子表格叫做"蓝色",电子表格叫做"黄色" 到目前为止,我有这个脚本,但它告诉

    • 问题内容: Gdata提供了一种基于时间戳仅从Google电子表格中获取更改的单元格的方法。如何为Gdata调用创建时间戳? 即“将仅返回发布时间等于或晚于指定时间戳记的条目。” setPublishedMax()https://developers.google.com/gdata/javadoc/com/google/gdata/client/Query#setPublishedMax (co

    • 我试图在单元格中添加日期,但工作表自动将值存储在带有单引号的字符串中()。对于在日期中存储值,我们还尝试添加,但它不适合我们。 下面是追加请求。 在工作表上附加单个日期单元格的示例代码 电子表格,单个日期值附加的示例代码

    • 我有几个谷歌表,我连接和更新他们之间的单元格。现在,我必须使用R1C1或A1类型引用来定义基于特定列的获取或设置单元格。 如果添加了新列,所有这些引用现在都将关闭。 每个工作表的第一行都有列标题作为这些单元格中的值。 我能否以[columnHeader]5等格式引用该列第五行中的单元格? 我曾想过将每个单独的列标题设置为“命名范围”,但我一直无法使用[named range]5引用单元格。 我想我