有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用JavaSheetsAPI在google工作表中标识单元格类型(公式、列表等)

下面的代码检索特定范围内单元格的字符串表示形式。 我想要实现的是获取一个cell对象并识别值类型,如果它是公式,那么公式是什么,如果它是从etc'获取值的列表

    ValueRange response = service.spreadsheets().values()
            .get(spreadsheetId, range)
            .execute();
    List<List<Object>> values = response.getValues();
    if (values == null || values.isEmpty()) {
        System.out.println("No data found.");
    } else {
        for (List row : values) {
            System.out.println(row);
        }
    }

共 (1) 个答案

  1. # 1 楼答案

    我想知道怎么做。。。 我只需要使用setIncludeGridData调用getValues()(true)

        Sheets.Spreadsheets.Get get = service.spreadsheets().get(spreadsheetId).setIncludeGridData(true);
        Spreadsheet sheet = get.execute();
        GridData gridData = sheet.getSheets().get(0).getData().get(0);
        List<RowData> rowData = gridData.getRowData();
        System.out.println("Found " + rowData.size() + " rows in sheet range");
    

    然后我可以在行数据上循环,并在那里获得我需要的所有信息,例如:

      {
        "effectiveFormat": {
          "backgroundColor": {
            "blue": 1.0,
            "green": 1.0,
            "red": 1.0
          },
          "horizontalAlignment": "RIGHT",
          "hyperlinkDisplayType": "PLAIN_TEXT",
          "padding": {
            "bottom": 2,
            "left": 3,
            "right": 3,
            "top": 2
          },
          "textFormat": {
            "bold": false,
            "fontFamily": "arial,sans,sans-serif",
            "fontSize": 10,
            "foregroundColor": {
    
            },
            "italic": false,
            "strikethrough": false,
            "underline": false
          },
          "verticalAlignment": "BOTTOM",
          "wrapStrategy": "OVERFLOW_CELL"
        },
        "effectiveValue": {
          "numberValue": 122.0
        },
        "formattedValue": "122",
        "userEnteredValue": {
          "formulaValue": "=SUM(A2:C2)"
        }
      }