gpt4 book ai didi

google-apps-script - 如何在 google sheets API 中写入特定范围的工作表

转载 作者:行者123 更新时间:2023-12-05 03:06:07 27 4
gpt4 key购买 nike

这是我第一次使用 google sheets API,我正在尝试编写一个脚本来接收一些数据并对其进行处理,这很有效,然后我想将处理后的数据写入一个已经存在的列中现有工作表,这是我需要帮助的。

是否有更好的方法将数组放在特定范围内?

错误消息说无法获取 null 范围,这是我目前的代码,不属于 block 的行是问题所在:

function getList() {
var spreadsheetId = '1BjnZ-SPBVcCdITxcvEX1nCPecvGdYSKQ0m_GiaKduZQ';
var rangeName = 'Paste Here!I1:GZ6';
var pasteRange = 'The Goods!B3:B1000';
var values = Sheets.Spreadsheets.Values.get(spreadsheetId, rangeName).values;
var width = values[0].length;
var teamNumbers = [];
if (!values) {
Logger.log('No data found.');
} else {
for(var col = 1; col < width; col+=2) {
for(var row = 0; row < values.length; row++) {
teamNumbers += values[row][col].toString();
teamNumbers += '\n'
}
}

SpreadsheetApp.getActiveSpreadsheet().getRange(pasteRange).setValues(teamNumbers);

}
}

另外,第二个问题,如何使某个变量的范围成为变量,以便从参数中获取 I1:GZ6?

非常感谢任何帮助,提前致谢!

最佳答案

第一个问题

这个修改怎么样?

修改点:

  • teamNumbers 声明为数组。但它被用作字符串。
    • 为了使用 Sheets API 将值导入电子表格,teamNumbers 必须用作二维数组。
    • 如果要在一个单元格中导入字符串值,
      • 如果使用 Sheets API,请使用 teamNumbers = [[value]]
      • 如果使用SpreadsheetAppsetValue(teamNumbers),请使用teamNumbers = value
  • 如果你想使用SpreadsheetApp.getActiveSpreadsheet().getRange(pasteRange).setValues(teamNumbers)pasteRange需要匹配行的大小和teamNumbers 的列。
  • 如果您想使用 var rangeName = 'Paste Here!I1:GZ6',您可以使用 Sheets API 的 Sheets.Spreadsheets.Values.update()
    • 在此修改中,使用了 this。

修改后的脚本:

function getList() {
var spreadsheetId = '1BjnZ-SPBVcCdITxcvEX1nCPecvGdYSKQ0m_GiaKduZQ';
var rangeName = 'Paste Here!I1:GZ6';
var pasteRange = 'The Goods!B3:B1000';
var values = Sheets.Spreadsheets.Values.get(spreadsheetId, rangeName).values;
var width = values[0].length;
var teamNumbers = [];
if (!values) {
Logger.log('No data found.');
} else {
for(var col = 1; col < width; col+=2) {
for(var row = 0; row < values.length; row++) {
teamNumbers.push([values[row][col].toString()]); // Modified
}
}
var spreadsheetId = SpreadsheetApp.getActiveSpreadsheet().getId(); // Modified
Sheets.Spreadsheets.Values.update({values: teamNumbers}, spreadsheetId, pasteRange, {valueInputOption: "RAW"}); // Modified
}
}

注意事项:

  • 如果出现与 API 相关的错误,请再次确认 Advanced Google Services 和 API 控制台是否启用了 Sheets API。

引用:

第二个问题

如果要将网格范围转换为 a1notation,可以在 the document 查看示例和 this gist .

如果我误解了你的问题,我很抱歉。

关于google-apps-script - 如何在 google sheets API 中写入特定范围的工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49870144/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com