通过Google Spreadsheet API添加标头

时间:2011-09-07 10:15:45

标签: java google-sheets google-docs-api

我无法通过Java API将标头(或任何常规数据)插入到新创建的工作表中。插入数据的标准方法是提供标题和值,例如

newEntry.getCustomElements().setValueLocal(header, value2);

这个问题类似于在stackoverflow上发布的这个问题:

How to add header in Google spreadsheet

建议的答案是尝试使用基于单元格的Feed而不是基于上面示例中的列表。我无法做到这一点,因为对细胞的任何查询或尝试获取细胞饲料似乎都返回0,因为任何单元格中都没有数据要返回...至少这是我认为正在发生的事情......

e.g。

    public void getCells(){
         cellFeedUrl = worksheetEntry.getCellFeedUrl();
        CellFeed feed;
        try {
            feed = spreadSheetService.getFeed(cellFeedUrl, CellFeed.class);

        for (CellEntry cell : feed.getEntries()) {
          System.out.println(worksheetEntry.getTitle().getPlainText());
          String shortId = cell.getId().substring(cell.getId().lastIndexOf('/') + 1);
          System.out.println(" -- Cell(" + shortId + "/" + cell.getTitle().getPlainText()
              + ") formula(" + cell.getCell().getInputValue() + ") numeric("
              + cell.getCell().getNumericValue() + ") value("
              + cell.getCell().getValue() + ")");
        }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ServiceException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

and

public void queryHeader(){

    CellQuery query = new CellQuery(cellFeedUrl);
    query.setMinimumRow(1);
    query.setMaximumRow(1);
    query.setMinimumCol(1);
    query.setMaximumCol(1);
    try {
        CellFeed feed = spreadSheetService.query(query, CellFeed.class);

        List<CellEntry> entries = feed.getEntries();

        for(CellEntry cell : entries){

            cell.changeInputValueLocal("new");
        }

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ServiceException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

1 个答案:

答案 0 :(得分:4)

您怀疑空单元格没有返回是正确的。您可以通过添加以下行来覆盖此默认设置:

query.setReturnEmpty(true);