我正在嘗試將字符串格式的JSON寫入到Java中的Excel文件中。我知道如何寫入文件,但我無法弄清楚如何格式化它。以格式化的方式將JSON字符串從Java寫入Excel到
例如,如果我想寫:
{ '數據':[{ 'ID':1, '名稱': '荷甲', '活性':真}]}
對於一個excel文件,我如何實現它,使每個值出現在它自己的單獨單元格中?像這樣:Screenshot of sample excel sheet
我已經做了研究,但找不到一個簡單的答案。任何幫助將不勝感激,謝謝。
我正在嘗試將字符串格式的JSON寫入到Java中的Excel文件中。我知道如何寫入文件,但我無法弄清楚如何格式化它。以格式化的方式將JSON字符串從Java寫入Excel到
例如,如果我想寫:
{ '數據':[{ 'ID':1, '名稱': '荷甲', '活性':真}]}
對於一個excel文件,我如何實現它,使每個值出現在它自己的單獨單元格中?像這樣:Screenshot of sample excel sheet
我已經做了研究,但找不到一個簡單的答案。任何幫助將不勝感激,謝謝。
CSV(逗號分隔值)文件格式是一個不錯的選擇。
因此,您只需將文本輸出到文件,用逗號分隔每個值。 E.G:
ID,Name,Active
1,Eredivisie,true
...etc
根據您的數據(如果它包含任何逗號),您可能需要選擇不同的字符來分隔值。在excel中,你可以指定你正在使用的字符。
這是如何解決OP的問題的 – Joe
我理解這個問題是一個問題將某些JSON數據轉換爲可在Excel中顯示的格式。 – khriskooper
根據我的理解,OP的問題是如何將數據寫入JSON和Excel文件。 – Joe
只是將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
希望它能幫助。
你不需要做更多的事情只是拉了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"));
如何這個問題涉及到VBA ? – Joe
查看CSV文件格式。 – khriskooper
除CSV以外,你可以直接使用[apache-poi](https://poi.apache.org)以Excel格式編寫,即使它可能會過度殺傷 – eddyce