2017-08-14 311 views
0

我正在嘗試將字符串格式的JSON寫入到Java中的Excel文件中。我知道如何寫入文件,但我無法弄清楚如何格式化它。以格式化的方式將JSON字符串從Java寫入Excel到

例如,如果我想寫:

{ '數據':[{ 'ID':1, '名稱': '荷甲', '活性':真}]}

對於一個excel文件,我如何實現它,使每個值出現在它自己的單獨單元格中?像這樣:Screenshot of sample excel sheet

我已經做了研究,但找不到一個簡單的答案。任何幫助將不勝感激,謝謝。

+2

如何這個問題涉及到VBA ? – Joe

+1

查看CSV文件格式。 – khriskooper

+1

除CSV以外,你可以直接使用[apache-poi](https://poi.apache.org)以Excel格式編寫,即使它可能會過度殺傷 – eddyce

回答

0

CSV(逗號分隔值)文件格式是一個不錯的選擇。

因此,您只需將文本輸出到文件,用逗號分隔每個值。 E.G:

ID,Name,Active 
1,Eredivisie,true 
...etc 

根據您的數據(如果它包含任何逗號),您可能需要選擇不同的字符來分隔值。在excel中,你可以指定你正在使用的字符。

+0

這是如何解決OP的問題的 – Joe

+0

我理解這個問題是一個問題將某些JSON數據轉換爲可在Excel中顯示的格式。 – khriskooper

+0

根據我的理解,OP的問題是如何將數據寫入JSON和Excel文件。 – Joe

0

只是將JSON解析爲簡單的POJO對象,然後將POJO對象格式化爲字符串以創建CSV格式。

的代碼看起來有些事情是這樣的:

ObjectMapper mapper = new ObjectMapper(); 
List<Data> dataList = mapper.readValue(json, List.class); 

StringBuilder csvFormattedText = new StringBuilder("id, name, active"); 

forEach (Data data : dataList) { 
    scvFormattedText.append(data.getId()).append(", ") 
     .append(data.getName) 
     .append(", ") 
     .append(data.getActiveStatus()) 
     .append("\n"); 
} 

File csvFile = new File("fromJSON.csv"); 
try (PrintWriter write = new PrintWriter(csvFile)) { 
    out.println(csvFormattedText.toString()); 
} 

以下數據是基於JSON中的字段創建的POJO類。 通過這種方式,您可以將JSON轉換爲CSV文件,因此可以使用Excel打開它。

如果你不喜歡這種方法,你可能不得不使用像Apache POI這樣的庫來將JSON轉換爲xls。您必須遵循相同的流程,只有POI有所不同才能幫助您在電子表格的每個單元格中設置值。

上POI庫延伸閱讀:Apache POI

希望它能幫助。

0

你不需要做更多的事情只是拉了JSON,然後再應用在Excel中寫,創造新行再創造新的4個單元中的每個對象

JSONObject json=new JSONObject("{\"data\":[{\"id\":1,\"name\":\"Eredivisie\",\"active\":true}]} 

    JSONObject data=new json.getJSONObject("data")); 
    cell1.setCellStringValue(data.getString("id")); 
    cell2.setCellStringValue(data.getString("name")); 
    cell3.setCellStringValue(data.getString("Eredivisie")); 
    cell4.setCellStringValue(data.getString("active"));