Google表格API v4,如果单元格为空,则Values.get
返回“未定义”。如果单元格为空,则Values.get
会返回{majorDimension=ROWS, range=Sheet1!J7:L7}
而没有“值”部分。
如果单元格为空,有没有办法获得以下输出?
Values.get
返回[[]]
而不是undefined
Values.batchGet
返回{majorDimension=ROWS, values=[[]], range=Sheet1!J7:L7}
而不是{majorDimension=ROWS, range=Sheet1!J7:L7}
{1}}
这是代码:
function getOneCellValue() {
var response = Sheets.Spreadsheets.Values.get("SpreadsheetId", "Sheet1!L20");
Logger.log(response.values);
}
function getValueRanges() {
var response = Sheets.Spreadsheets.Values.batchGet("SpreadsheetId", {ranges: ["Sheet1!D7:F7", "Sheet1!J7:L7"]});
Logger.log(response.valueRanges);
}
谢谢。
答案 0 :(得分:1)
表格API Values.get()
& Values.batchGet()
ValueRange: values[]会丢弃额外的行/列,如果它们为空:
已读取或待写的数据。这是一个数组数组,外部数组表示所有数据,每个内部数组表示一个主要维度。内部数组中的每个项目对应一个单元格。
对于输出,不会包含空的尾随行和列。
如果您希望值以空单元格的形式返回,请使用built-in method range.getValues()
。或者使用undefined
值替换[[]]
。
function getOneCellValue() {
var response = Sheets.Spreadsheets.Values.get("SpreadsheetId", "Sheet1!L20");
// Assign the empty array if undefined
var api_value = response.values || [[]];
Logger.log(api_value);
// Or use getValues()
var ss = SpreadsheetApp.getActiveSpreadsheet();
var get_values = ss.getRange("Sheet1!L20").getValues();
Logger.log(get_values);
}