我正在使用下面的Node.js代码向Google电子表格中插入一些文本,我需要知道的是:
如何使代码检测特定列中的第一个空单元格,例如A列中的第一个空单元格,以便可以开始向其添加文本(或最后一个在A列中具有值的单元格,所以我可以开始在其后添加我的文字)
这里是现有代码:
const mySpreadSheetId = 'mySheetId';
const range = 'Sheet2!A10';
return new Promise((resolve, reject) => {
sheets.spreadsheets.values.update({
auth: jwtClient,
spreadsheetId: mySpreadSheetId,
range: range,
valueInputOption: 'USER_ENTERED',
resource: {range: 'Sheet2!A10',
majorDimension: 'ROWS',
values: [["some Text"]]}
} ,(err, resp) => {
if (err) {
console.log('Data Error :', err);
reject(err);
}
resolve(resp);
});
});
答案 0 :(得分:3)
如果我的理解正确,那么这个答案如何?请认为这只是几个可能的答案之一。
为了知道特定列中的第一个空行,首先,需要检索这些值。修改后的脚本的流程如下。
请按照以下说明修改new Promise((resolve, reject) => { ### })
中的脚本。在运行脚本之前,请设置变量mySpreadSheetId
和sheetName
。在此修改后的脚本中,将检索列“ A”的第一个空单元格,并将some Text
的值放入检索到的单元格中。
const mySpreadSheetId = 'mySheetId';
const sheetName = "Sheet2";
sheets.spreadsheets.values.get(
{
auth: jwtClient,
spreadsheetId: mySpreadSheetId,
range: `${sheetName}!A:A`
},
(err, res) => {
if (err) {
console.error(err);
return;
}
const data = res.data.values;
let i = 0;
for (i = 0; i < data.length; i++) {
if (!data[i][0]) break;
}
sheets.spreadsheets.values.update(
{
auth: jwtClient,
spreadsheetId: mySpreadSheetId,
range: `${sheetName}!A${i + 1}`,
valueInputOption: "USER_ENTERED",
resource: {
majorDimension: "ROWS",
values: [["some Text"]]
}
},
(err, resp) => {
if (err) {
console.log("Data Error :", err);
reject(err);
}
resolve(resp);
}
);
}
);
以上已修改的脚本检索特定列的第一个空单元格。在这种情况下,例如,当将值设置为1, 2, , 4, 5
时,该值将放入第三个单元格。如果要将值附加到特定列,请按如下所示修改上面的脚本。
发件人:
let i = 0;
for (i = 0; i < data.length; i++) {
if (!data[i][0]) break;
}
收件人:
let i = data.length;
如果我误解了您的问题,而这不是您想要的方向,我深表歉意。