2016-09-09 5 views
0

以前は、Googleのスプレッドシートにアクセスして行を取得するためにListFeedを使用していました。行数が増えるにつれて、バッチでデータをフェッチするためにCellFeedに移動する必要がありました。Googleスプレッドシートの「CellFeed」に空白のセルも返す(Javaを使用する)方法を教えてください。

セルフィードを使用してGoogleスプレッドシートのnull値または空の値が返されないという問題に直面しています。私がListFeedを使用していたときには、ブランク値も返すことがありました。

は、次のコードの一部です:

 URL cellFeedUrl2 = new URI(SPREADSHEET_FEED_URL.toString() + "?min-row=2&max-row=5").toURL(); 
     CellFeed cellFeed2 = service.getFeed(cellFeedUrl2, CellFeed.class); 
     for (CellEntry cell : cellFeed2.getEntries()){ 
      System.out.println(cell.getCell().getValue() + "\t"); 
     } 

実際の出力:
1行1
名前
メール
DOB
電話


2行2
氏名
メール
は 電話


(ノーDOBそれがスプレッドシート内の空ですが、まだそれが表示されますので)

予想される出力:
1行1
名前
メール
DOB
電話

2.Row2
名前
メール
DOB
電話

提案して下さい!次のように

+0

Google for Cell-based Feedsのこの[documentation](https://developers.google.com/google-apps/spreadsheets/data#work_with_cell-based_feeds)を確認しましたか? – KENdi

+0

ありがとう@KENdi、はい、私はGoogle Cell-based Feedのドキュメントを読んでいました。私は解決策を見つけた。答えを投稿する。 –

答えて

1

ソリューションは、URLにパラメータを追加することです:

URL cellFeedUrl2 = new URI(SPREADSHEET_FEED_URL.toString() + "?return-empty=true&min-row=2&max-row=5").toURL(); 
    CellFeed cellFeed2 = service.getFeed(cellFeedUrl2, CellFeed.class); 
    for (CellEntry cell : cellFeed2.getEntries()){ 
     System.out.println(cell.getCell().getValue() + "\t"); 
    } 

パラメータ「を返す空= true」をnullとして、これによってtry-catchブロックを使用して処理することができ、ブランク値を返します。例外が発生した場合

関連する問題