2017-08-14 32 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")); 
相关问题