リスト ベースのフィードを使用して、Google ドキュメントのスプレッドシートにアクセスしています。列名/列ヘッダーのリストを取得するにはどうすればよいですか?
私はこれに対する答えを自分で見つけましたが、StackOverflowまたはGoogle APIのJavaドキュメントで答えを見つけることができなかったので、私の解決策に貢献すると思いました.
リスト ベースのフィードを使用して、Google ドキュメントのスプレッドシートにアクセスしています。列名/列ヘッダーのリストを取得するにはどうすればよいですか?
私はこれに対する答えを自分で見つけましたが、StackOverflowまたはGoogle APIのJavaドキュメントで答えを見つけることができなかったので、私の解決策に貢献すると思いました.
ワークシートへのアクセス方法は最初から知っていると思いますので、次の 2 つの関数を作成する必要があります。
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;
}