以格式化方式将JSON字符串从Java写入Excel

时间:2017-08-14 13:31:43

标签: java json excel excel-2010

我正在尝试将字符串格式的JSON写入Java中的excel文件。我知道如何写入文件,但我无法弄清楚如何格式化它。

例如,如果我想写这个:

{'数据':[{' ID':1,'名称':'荷甲''有源&# 39;:真}]}

对于excel文件,我如何实现它,以便每个值出现在它自己的单独单元格中?像这样:Screenshot of sample excel sheet

我做过研究,但找不到简单的答案。任何帮助将不胜感激,谢谢。

3 个答案:

答案 0 :(得分:0)

CSV(逗号分隔值)文件格式是一个不错的选择。

因此,您只需将文本输出到文件,用逗号分隔每个值。 E.G:

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

根据您的数据(如果它包含任何逗号),您可能必须选择不同的字符来分隔值。干得好,你可以指定你正在使用的角色。

答案 1 :(得分: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());
}

这里的数据是POJO类,它是根据JSON中的字段创建的。 通过这种方式,您可以将JSON转换为CSV文件,因此可以使用excel打开它。

如果您不喜欢这种方法,则可能必须使用Apache POI之类的库将JSON转换为xls。您必须遵循相同的流程,只有差异POI可以帮助您设置电子表格的每个单元格中的值。

进一步阅读POI库:Apache POI

希望它有所帮助。

答案 2 :(得分: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"));