お世話になっております。 現在googleのSpreadsheetからデータを取得しているプログラムを作成しているのですが、 指定したエリアからデータを取得する箇所の処理で行き詰っています。 spreadsheetは以下の条件で作成されています。 ・ヘッダー行(1行目)に同じ名前のカラムが存在している。 ・formからデータを登録している。 ・列によっては未入力の場合もあるため、nullが入るセルがある。 可変のRangeからデータを取得するを下記のように行っているのですが /////////////////////////ソース一部抜粋///////////////////////// SpreadsheetFeed sheetFeed = service.query(sheetQuery, SpreadsheetFeed.class); SpreadsheetEntry sheetEntry = sheetFeed.getEntries().get(0); WorksheetEntry worksheetEntry = sheetEntry.getDefaultWorksheet(); CellQuery query = new CellQuery(worksheetEntry.getCellFeedUrl()); query.setReturnEmpty(true); query.setMinimumCol(1); query.setMinimumRow(2); query.setMaximumCol(worksheetEntry.getColCount()); query.setMaximumRow(worksheetEntry.getRowCount()); List cellEntryList = service.getFeed(query, CellFeed.class).getEntries(); for (CellEntry cellEntry : cellEntryList) { System.out.println(cellEntry.getCell().getRow() + "行 " + cellEntry.getCell().getCol() + "列 : " + cellEntry.getCell().getValue() ); } //////////////////////////////////////////////////////////////// worksheetEntry.getColCount()とworksheetEntry.getRowCount()の戻り値が データの入っていない行、列をカウントしてしまい、 デフォルトのシート行の1000、列の26が戻ってきてしまい 空白データを大量に取得してしまいます。 同名のヘッダーがあるためListEntryを利用せず、 setReturnEmptyをtrueにしたままの状態で シートの状態をいじらず(行、列を削除するなど)に 所定の範囲からデータを取得する方法がありましたら ご教授のほどよろしくお願いします。
↧