使用 api 在 google 电子表格中特定列的末尾附加一个新单元格(行)
Append a new cell (row) at the end of specific column in google spreadsheet using api
无法找到在 google sheets 到 v4 APIs 的特定列末尾追加数据的方法。
我知道我们可以使用 Append API 添加一个全新的行:https://developers.google.com/sheets/api/samples/writing#append_values
但这会从第一列开始添加一个全新的行。我只需要 push/append 从特定列开始的数据。
我正在做的sheet如下:
现在我需要在“类别”列中添加多个类别,例如“Ca1”和“Cat2”。我知道我可以传递数据而不是 filled/edited 列作为空值,如:
"majorDimension": "ROWS",
"values": [
[null,"Cat1",null]
[null,"Cat2",null]
]
但在此之后,如果下次我需要仅使用相同的格式将数据附加到标签列(比如 Tag1、Tag2),结果 sheet 将变为:
"majorDimension": "ROWS",
"values": [
[null,null,"Tag1"]
[null,null,"Tag2"]
]
因此,一旦数据变得庞大,如果没有解决方案,像 C6 单元格之间的空白空间将会增加。我只需要像这样维护数据(仅按列)。
是否有任何解决方案可以在特定列的末尾追加数据?
假设:
sheet
是一个 sheet 对象(例如 SpreadsheetApp.getActive().getSheetByName("Sheet1");
),
列C(3
)是你要粘贴数据的列,
列 C 在 C1 和最后一个 C[= 之间没有空单元格43=] 含内容的值。
data
具有以下格式:
data = [
["Tag1"]
["Tag2"],
...
]
那么你可以使用这个通用表达式:
const cSize=sheet.getRange('C:C').getValues().filter(String).length;
sheet.getRange(cSize+1,3,data.length,1).setValues(data);
您可以使用现有值确定下一个空单元格,然后从那里定义您的范围。
- 获取列values
GET https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/C:C
- 响应是一个 ValueRange,其中包含一个值数组。值得庆幸的是,“不会包括空的尾随行和列”,因此您可以利用它来发挥自己的优势。
var lastRow = ValueRange.values.length;
- 指定新范围,仅选择 C 列中的下一个空单元格
var range = 'Sheet1!C' + (lastRow+1);
- 发送您的 update 请求
Sheets.Spreadsheets.Values.update(
{
'majorDimension': 'COLUMNS',
'values': [['Tag1']]
},
spreadsheetId,
range,
{ valueInputOption: 'USER_ENTERED' }
);
无法找到在 google sheets 到 v4 APIs 的特定列末尾追加数据的方法。
我知道我们可以使用 Append API 添加一个全新的行:https://developers.google.com/sheets/api/samples/writing#append_values
但这会从第一列开始添加一个全新的行。我只需要 push/append 从特定列开始的数据。
我正在做的sheet如下:
现在我需要在“类别”列中添加多个类别,例如“Ca1”和“Cat2”。我知道我可以传递数据而不是 filled/edited 列作为空值,如:
"majorDimension": "ROWS",
"values": [
[null,"Cat1",null]
[null,"Cat2",null]
]
但在此之后,如果下次我需要仅使用相同的格式将数据附加到标签列(比如 Tag1、Tag2),结果 sheet 将变为:
"majorDimension": "ROWS",
"values": [
[null,null,"Tag1"]
[null,null,"Tag2"]
]
因此,一旦数据变得庞大,如果没有解决方案,像 C6 单元格之间的空白空间将会增加。我只需要像这样维护数据(仅按列)。
是否有任何解决方案可以在特定列的末尾追加数据?
假设:
sheet
是一个 sheet 对象(例如SpreadsheetApp.getActive().getSheetByName("Sheet1");
),列C(
3
)是你要粘贴数据的列,列 C 在 C1 和最后一个 C[= 之间没有空单元格43=] 含内容的值。
data
具有以下格式:data = [ ["Tag1"] ["Tag2"], ... ]
那么你可以使用这个通用表达式:
const cSize=sheet.getRange('C:C').getValues().filter(String).length;
sheet.getRange(cSize+1,3,data.length,1).setValues(data);
您可以使用现有值确定下一个空单元格,然后从那里定义您的范围。
- 获取列values
GET https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/C:C
- 响应是一个 ValueRange,其中包含一个值数组。值得庆幸的是,“不会包括空的尾随行和列”,因此您可以利用它来发挥自己的优势。
var lastRow = ValueRange.values.length;
- 指定新范围,仅选择 C 列中的下一个空单元格
var range = 'Sheet1!C' + (lastRow+1);
- 发送您的 update 请求
Sheets.Spreadsheets.Values.update(
{
'majorDimension': 'COLUMNS',
'values': [['Tag1']]
},
spreadsheetId,
range,
{ valueInputOption: 'USER_ENTERED' }
);