我正在使用基于列表的提要来访问我在谷歌文档中的电子表格。如何获取列名/ columnHeaders 的列表?
我自己想出了这个问题的答案,但由于我在 StackOverflow 上或在谷歌 api 的 java 文档中找不到答案,我想会贡献我的解决方案。
我正在使用基于列表的提要来访问我在谷歌文档中的电子表格。如何获取列名/ columnHeaders 的列表?
我自己想出了这个问题的答案,但由于我在 StackOverflow 上或在谷歌 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 的所有单元格。
但是,您需要删除所有不是字母数字、小数或破折号的字符,还需要删除任何前导数字,这可以通过正则表达式和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;
}