2016-09-04 5 views
0

Googleスプレッドシートにデータを書き込むには、次のコードを使用しています。セル内に「Googleシート内に日付を挿入する」

私たちはそれぞれの列の日付と通貨タイプが定義されているシートで
private static void writeValuesInSpreedSheet(Sheets service, String spreadsheetId, int sheetSize) throws IOException { 
    String range = "A"+(sheetSize+1)+":K"+(sheetSize+1); 
    List<List<Object>> newData = new ArrayList<>(); 
    List<Object> rowValues = new ArrayList(); 
    rowValues.add(getCurentDateInESTFormat()); 
    rowValues.add("2"); 
    rowValues.add("3"); 
    rowValues.add("4"); 
    rowValues.add("5"); 
    rowValues.add("6"); 
    rowValues.add("7"); 
    rowValues.add("8"); 
    rowValues.add("9"); 
    rowValues.add("10"); 
    rowValues.add("11"); 
    /* List<Object> rowValues1 = new ArrayList(); 
    rowValues1.add("1"); 
    rowValues1.add("2");*/ 
    newData.add(rowValues); 
    //newData.add(rowValues1); 
    // response.setValues(newData); 


    ValueRange oRange = new ValueRange(); 
    oRange.setRange(range); // I NEED THE NUMBER OF THE LAST ROW 
    oRange.setValues(newData); 
    List<ValueRange> oList = new ArrayList<>(); 
    oList.add(oRange); 

    BatchUpdateValuesRequest oRequest = new BatchUpdateValuesRequest(); 
    oRequest.setValueInputOption("RAW"); 
    oRequest.setData(oList); 

    BatchUpdateValuesResponse oResp1 = service.spreadsheets().values().batchUpdate(spreadsheetId, oRequest).execute(); 

    System.out.println("Response Values " +oResp1.values()); 

} 

private static Object getCurentDateInESTFormat() { 
    SimpleDateFormat sdfAmerica = new SimpleDateFormat("MM/dd/YYYY"); 
    sdfAmerica.setTimeZone(TimeZone.getTimeZone("America/New_York")); 
    String sDateInAmerica = sdfAmerica.format(new Date()); 

    return sDateInAmerica; 
} 

私は、データを書き込むことができていますが、最終的にそのは、例えば、データで'を付加 - '09/04/2016

我々は日付フォーマットにそれを開くことができません。このためです。私は1つのスクリーンショットも添付しました。

enter image description here

我々はGoogle Sheets API V4を使用しています。

私はそれに関連するリンク/ソリューションが見つかりませんでしたので、この質問をしています。

+1

大文字の「SimpleDateFormat」の「Y」は、暦年ではなく週単位を意味します。 –

+1

ちょうど推測です。標準[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)フォーマット(YYYY-MM-DD)でデータを入力してみてください。スプレッドシートに書式を適用して、希望のスタイルでその値を表示します。また、java.timeクラスに取って代わる、厄介な古い日時クラスを避けてください。 'String output = LocalDate.now(ZoneId.of(" America/New_York ")).toString()は' 2016-01-23'スタイル出力を生成します。 –

+1

あなたのタイトルを*正確に*あなたの質問を要約するように編集してください。 –

答えて

1

ValueInputOptionRAWを使用する場合は、serial number formatに日付を渡す必要があります。 Apache POIライブラリには、getExcelDateメソッドが用意されていますが、これはほとんどの場合に処理されますが、epoch usedの違いを説明するために1日を追加する必要があります。

+0

ありがとうございました。それは私のために働いた。 –

関連する問題