如何使用GoogleSheetsAPIv4JavaScript删除GoogleSheet中的空行?
上面的代码是从google工作表中删除一行。现在,我的问题是如何通过移动其余的行来从google工作表中删除该空行?回答: 您需要使用batchUpdate来完成此操作 请求示例: 上述请求将从具有给定gid的工作表中删除第一行 这些行是0索引的,因此从0开始到1结束将删除第一行。同样,从8开始到18结束将删除第9-18行 方法如下:如何使用GoogleSheetsAPIv4JavaScript删除GoogleSheet中的空行?,javascript,google-sheets-api,Javascript,Google Sheets Api,上面的代码是从google工作表中删除一行。现在,我的问题是如何通过移动其余的行来从google工作表中删除该空行?回答: 您需要使用batchUpdate来完成此操作 请求示例: 上述请求将从具有给定gid的工作表中删除第一行 这些行是0索引的,因此从0开始到1结束将删除第一行。同样,从8开始到18结束将删除第9-18行 方法如下: { "requests": [ { "deleteDimension": { &q
{
"requests": [
{
"deleteDimension": {
"range": {
"sheetId": sheetId,
"dimension": "ROWS",
"startIndex": 0,
"endIndex": 1
}
}
}
]
}
注意:这是电子表格.batchUpdate
和而不是电子表格.values.batchUpdate
现在一起:
gapi.client.sheets.spreadsheets.batchUpdate(resource)
为了获得哪些行为空,您必须使用电子表格.values.get
并手动循环响应
答复将采用以下形式:;您需要循环查看响应。值
:
const resource = {
"requests": [
{
"deleteDimension": {
"range": {
"sheetId": sheetId,
"dimension": "ROWS",
"startIndex": 0,
"endIndex": 1
}
}
}
]
}
const response = gapi.client.sheets.spreadsheets.batchUpdate({
"spreadsheetId": "your-spreadsheet-id",
"resource": resource
})
.then(function(response) {
console.log("Response is: \n", response)
}, function(err) {
console.error("Execute error", err)
})
在本例中,我使用的电子表格如下所示:
对于此电子表格,响应将是:
{
"range": "Sheet1!A1:Z1000",
"majorDimension": "ROWS",
"values": [
[] // each row is an array
]
}
所以我们只需要检查response.result.values
的哪些元素是空数组:
假设电子表格中的列最多为ZZZ
,因此要填充整个范围,您可以提出以下请求:
{
"range": "Sheet1!A1:Z1000",
"majorDimension": "ROWS",
"values": [
[ "1", "1", "1", "1", "1", "1", "1", "1", "1", "1" ],
[ "2", "2", "2", "2", "2", "2", "2", "2", "2", "2" ],
[ "3", "3", "3", "3", "3", "3", "3", "3", "3", "3" ],
[ "4", "4", "4", "4", "4", "4", "4", "4", "4", "4" ],
[],
[ "6", "6", "6", "6", "6", "6", "6", "6", "6", "6" ],
[],
[],
[ "9", "9", "9", "9", "9", "9", "9", "9", "9", "9" ],
[ "10", "10", "10", "10", "10", "10", "10", "10", "10", "10" ],
]
}
然后向后循环此数组,将值传递到上一个batchUpdate
请求中,以将其从工作表中完全删除。从下到上删除很重要,这样就不会更改行号并意外删除其中包含数据的行
注意:这不会删除超过最后一个数据行的空行,仅删除数据集中的空行
我希望这对你有帮助
参考资料:
答案:
您需要使用batchUpdate来完成此操作
请求示例:
上述请求将从具有给定gid的工作表中删除第一行
这些行是0索引的,因此从0开始到1结束将删除第一行。同样,从8开始到18结束将删除第9-18行
方法如下:
{
"requests": [
{
"deleteDimension": {
"range": {
"sheetId": sheetId,
"dimension": "ROWS",
"startIndex": 0,
"endIndex": 1
}
}
}
]
}
注意:这是电子表格.batchUpdate
和而不是电子表格.values.batchUpdate
现在一起:
gapi.client.sheets.spreadsheets.batchUpdate(resource)
为了获得哪些行为空,您必须使用电子表格.values.get
并手动循环响应
答复将采用以下形式:;您需要循环查看响应。值
:
const resource = {
"requests": [
{
"deleteDimension": {
"range": {
"sheetId": sheetId,
"dimension": "ROWS",
"startIndex": 0,
"endIndex": 1
}
}
}
]
}
const response = gapi.client.sheets.spreadsheets.batchUpdate({
"spreadsheetId": "your-spreadsheet-id",
"resource": resource
})
.then(function(response) {
console.log("Response is: \n", response)
}, function(err) {
console.error("Execute error", err)
})
在本例中,我使用的电子表格如下所示:
对于此电子表格,响应将是:
{
"range": "Sheet1!A1:Z1000",
"majorDimension": "ROWS",
"values": [
[] // each row is an array
]
}
所以我们只需要检查response.result.values
的哪些元素是空数组:
假设电子表格中的列最多为ZZZ
,因此要填充整个范围,您可以提出以下请求:
{
"range": "Sheet1!A1:Z1000",
"majorDimension": "ROWS",
"values": [
[ "1", "1", "1", "1", "1", "1", "1", "1", "1", "1" ],
[ "2", "2", "2", "2", "2", "2", "2", "2", "2", "2" ],
[ "3", "3", "3", "3", "3", "3", "3", "3", "3", "3" ],
[ "4", "4", "4", "4", "4", "4", "4", "4", "4", "4" ],
[],
[ "6", "6", "6", "6", "6", "6", "6", "6", "6", "6" ],
[],
[],
[ "9", "9", "9", "9", "9", "9", "9", "9", "9", "9" ],
[ "10", "10", "10", "10", "10", "10", "10", "10", "10", "10" ],
]
}
然后向后循环此数组,将值传递到上一个batchUpdate
请求中,以将其从工作表中完全删除。从下到上删除很重要,这样就不会更改行号并意外删除其中包含数据的行
注意:这不会删除超过最后一个数据行的空行,仅删除数据集中的空行
我希望这对你有帮助
参考资料:
我认为OP想要删除空行,可能不想删除非空行。因此,我认为首先可能需要搜索空行并为batchUpdate方法创建请求主体。如果我误解了OP的问题,我道歉。@Tanaike你可能是对的。目前,需要搜索空行。我将介绍如何搜索空行;对于未来的读者,如果这项功能还没有实现,请给这项功能申请一颗星星,以提高谷歌的优先权。感谢您的回复。我认为response.values
返回undefined
。在这种情况下,如何修改为response.result.values
?@Tanaike很好!谢谢,更新:)我以为OP想要删除空行,可能不想删除非空行。因此,我认为首先可能需要搜索空行并为batchUpdate方法创建请求主体。如果我误解了OP的问题,我道歉。@Tanaike你可能是对的。目前,需要搜索空行。我将介绍如何搜索空行;对于未来的读者,如果这项功能还没有实现,请给这项功能申请一颗星星,以提高谷歌的优先权。感谢您的回复。我认为response.values
返回undefined
。在这种情况下,如何修改为response.result.values
?@Tanaike很好!谢谢,更新:)