我正在尝试将字符串格式的JSON写入Java中的excel文件。我知道如何写入文件,但我无法弄清楚如何格式化它。
例如,如果我想写这个:
{'数据':[{' ID':1,'名称':'荷甲''有源&# 39;:真}]}
对于excel文件,我如何实现它,以便每个值出现在它自己的单独单元格中?像这样:Screenshot of sample excel sheet
我做过研究,但找不到简单的答案。任何帮助将不胜感激,谢谢。
答案 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"));