【问题标题】:Google Sheets API v4 values.get and values.batchGet returning undefined or return value is missing for empty cellsGoogle Sheets API v4 values.get 和 values.batchGet 返回未定义或空单元格缺少返回值
【发布时间】:2017-08-31 17:47:26
【问题描述】:

如果单元格为空,Google Sheets 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}

这是代码:

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);
}

谢谢。

【问题讨论】:

    标签: google-apps-script google-sheets google-sheets-api


    【解决方案1】:

    Sheets 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);
    }
    

    【讨论】:

      【解决方案2】:

      设置 majorDimension='COLUMNS' 而不是 majorDimension='ROWS'。设置 majorDimension='COLUMNS' 返回没有值的占位符。有关函数参数的更多信息可以获取here

      result = sheet.values().get(
                                  spreadsheetId=spreadsheet_id,
                                  range=data_range,
                                  majorDimension='COLUMNS'
                                ).execute()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-16
        • 1970-01-01
        • 2019-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多