如何解决仅使用javascript CHROME EXTENSION删除Google表格中的行 答案:更多信息:提出请求:参考文献:相关问题:
我已经创建了chrome扩展名,从弹出窗口中我使用javascript在“ background.js”中获取“ put”方法在google表格中添加了输入值,现在我想从google表格中删除此值,因此请删除google表格中的行仅使用javascript。例如,我使用javascript数组pop()方法删除了最后一个值,但它并未删除Google工作表中的行。但是当我在console.log中获取值时,似乎pop()方法有效,但在Google表格中却没有任何作用。有人能帮助我吗? 这是我的代码,javascript获取“ put”方法background.js
let init = {
method: 'PUT',async: true,body:JSON.stringify(params),headers: {
Authorization: 'Bearer ' + access_token,'Content-Type': 'application/json'
},'contentType': 'json',};
fetch(
`https://sheets.googleapis.com/v4/spreadsheets/${SPREADSHEET_ID}/values/${SPREADSHEET_TAB_NAME}!A:C?valueInputOption=USER_ENTERED`,init)
.then((response) => console.log(response))
}
})
}
并获取我在其中使用javascript数组pop()background.js的方法:
let request = {
method: 'GET',headers: {
Authorization: 'Bearer ' + access_token,'Content-Type': 'application/json'
},};
fetch(
`https://sheets.googleapis.com/v4/spreadsheets/${SPREADSHEET_ID}/values/${SPREADSHEET_TAB_NAME}!A:C`,request)
.then((response) => response.json())
.then(function(data) {
let vals = data.values;
vals.pop()
console.log(vals)
})
解决方法
答案:
您只是从局部变量中删除最后一行-您根本不会将此请求发送到表格。
更多信息:
根据Row and Column Operations上的文档,您可以通过发出batchUpdate请求来删除行或列。
提出请求:
要删除最后一行,首先需要找到从spreadsheets.values
请求获得的数据数组的长度:
let vals = data.values;
let noOfRows = vals.length
然后,您可以在请求正文中发送spreadsheets.batchUpdate
请求和deleteDimension
请求:
{
"requests": [
{
"deleteDimension": {
"range": {
"sheetId": 0,// modify this to be your sheet gid
"dimension": "ROWS","startIndex": noOfRows - 1,"endIndex": noOfRows
}
}
}
]
}
要记住的事情:
- 您需要指定工作表的sheetId才能从中删除最后一行。这是查看特定工作表时URL中的
gid
值, 不 与电子表格ID相同。 -
deleteDimension.range.startIndex
和deleteDimension.range.endIndex
的索引为0,因此您需要指定要删除的行中的row number - 1
。
我希望这对您有帮助!
参考文献:
- Row and Column Operations | Sheets API | Google Developers
- Method:
spreadsheets.batchUpdate
| Sheets API | Google Developers
相关问题:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。