我使用基于列表的提要来访问我在google docs中的电子表格。我如何获得列名/columnHeaders的列表?
我自己找到了答案,但是因为我在StackOverflow上找不到答案,或者在google api的java文档中,我想我会贡献我的解决方案。
我假设您一开始就知道如何访问工作表,因此您负责编写以下两个函数。
SpreadsheetService service = getspreadsheetService();
WorksheetEntry worksheet = getGoogleWorksheet();
下面是你如何得到你的columnHeaders列表:
URL url = worksheet.getListFeedUrl();
ListFeed rows = service.getFeed(url, ListFeed.class);
ListEntry row = rows.getEntries().get(0);
Set<String> columnHeadings = row.getCustomElements().getTags();
您可以使用CellFeed并遍历行值为1的所有单元格。
但是,您需要去掉所有非字母数字、小数或破折号的字符,并且还需要去掉任何前导数字,这可以通过regex和String.replaceAll()
方法完成。
URL cellFeedUrl = worksheet.getCellFeedUrl();
CellFeed cellFeed = service.getFeed(cellFeedUrl, CellFeed.class);
String[] columnNames = new String[worksheet.getColCount()];
for (CellEntry entry : cellFeed.getEntries())
if (entry.cell.getRow() == 1)
{
String val = entry.cell.getValue().toLowerCase();
String parsed = val.replaceAll('^[0-9]*|[^a-z0-9-.]', '');
columnNames[entry.cell.getCol()] = parsed;
}