我正在尝试将字符串格式的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