0

如果单元格为空,Google Sheets API v4,Values.get返回'undefined'。如果单元格为空,则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}

下面是代码:Google Sheets API v4 values.get和values.batchGet返回空单元格的未定义或返回值

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

张API如果Values.get() & Values.batchGet()ValueRange: values[]丢弃多余的行/列它们是空的:

被读取或写入数据。这是一个数组数组,外部数组表示所有数据,每个内部数组表示一个主要维度。内部数组中的每个项目都对应一个单元格。

对于输出,不会包含空尾行和列。

如果你想要的值(一个或多个)回来作为空单元格,使用built-in methodrange.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); 
}