Java 如何使用google电子表格api获取列名列表?

Java 如何使用google电子表格api获取列名列表?,java,google-api,Java,Google Api,我正在使用基于列表的提要访问我在谷歌文档中的电子表格。如何获取列名/列标题的列表 我自己找到了这个问题的答案,但由于我在StackOverflow或google api的java文档中找不到答案,我认为这将有助于我的解决方案。我假设您知道如何访问工作表,因此您负责编写以下两个函数 SpreadsheetService service = getspreadsheetService(); WorksheetEntry worksheet = getGoogleWorksheet(); 以下是获取

我正在使用基于列表的提要访问我在谷歌文档中的电子表格。如何获取列名/列标题的列表


我自己找到了这个问题的答案,但由于我在StackOverflow或google api的java文档中找不到答案,我认为这将有助于我的解决方案。

我假设您知道如何访问工作表,因此您负责编写以下两个函数

SpreadsheetService service = getspreadsheetService();
WorksheetEntry worksheet = getGoogleWorksheet();
以下是获取列标题列表的方法:

URL url = worksheet.getListFeedUrl();
ListFeed rows = service.getFeed(url, ListFeed.class);
ListEntry row = rows.getEntries().get(0);
Set<String> columnHeadings = row.getCustomElements().getTags();
URL URL=worksheet.getListFeedUrl();
ListFeed rows=service.getFeed(url,ListFeed.class);
ListEntry row=rows.getEntries().get(0);
Set 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;
    }

这在PHP中是否可行?如果工作表有标题行,但没有数据行,则此操作将不起作用。@VivinValitah我面临此问题,在开始插入数据行之前,我想检查列名是否一致。。。你已经知道怎么做了吗?@heltonbiker\u SL女士的解决方案很接近。我最终不需要它,但我的解决方案非常相似。您可以查看自定义元素上的标记,看看它们是否符合要求。@VivinPalath谢谢您的回答!事实上,我用另一个答案解决了我的问题,正如你所说:)