好啦,到这里你以及看完了整个过程,重点是要理解其中的思路,尤其是转化方法上面。下面我将介绍导出json数据到excel文件中,其实这个就简单了就在后台将你的json数据调用转化方法,然后写入到excel文件中,返回前台设置响应让其下载即可。
这个是导出excel核心的方法。
/* src:定义下载的文件路径 */ public static JSONObject createExcel(String src, JSONArray json) { JSONObject result = new JSONObject(); // 用来反馈函数调用结果 try { // 新建文件 File file = new File(src); file.createNewFile(); OutputStream outputStream = new FileOutputStream(file);// 创建工作薄 jxl.write.WritableWorkbook writableWorkbook = jxl.Workbook.createWorkbook(outputStream); jxl.write.WritableSheet sheet = writableWorkbook.createSheet("First sheet", 0);// 创建新的一页 // JSONArray jsonArray = json.getJSONArray("dt");// 得到data对应的JSONArray JSONArray jsonArray = json;// 得到data对应的JSONArray jxl.write.Label label; // 单元格对象 int column = 0; // 列数计数 // 将第一行信息加到页中。如:姓名、年龄、性别 JSONObject first = jsonArray.getJSONObject(0); Iterator<String> iterator = first.keys(); // 得到第一项的key集合 while (iterator.hasNext()) { // 遍历key集合 String key = (String) iterator.next(); // 得到key label = new jxl.write.Label(column++, 0, key); // 第一个参数是单元格所在列,第二个参数是单元格所在行,第三个参数是值 sheet.addCell(label); // 将单元格加到页 } // 遍历jsonArray for (int i = 0; i < jsonArray.size(); i++) { JSONObject item = jsonArray.getJSONObject(i); // 得到数组的每项 iterator = item.keys(); // 得到key集合 column = 0;// 从第0列开始放 while (iterator.hasNext()) { String key = iterator.next(); // 得到key String value = item.getString(key); // 得到key对应的value label = new jxl.write.Label(column++, (i + 1), value); // 第一个参数是单元格所在列,第二个参数是单元格所在行,第三个参数是值 sheet.addCell(label); // 将单元格加到页 } } writableWorkbook.write(); // 加入到文件中 writableWorkbook.close(); // 关闭文件,释放资源 } catch (Exception e) { result.put("result", "failed"); // 将调用该函数的结果返回 result.put("reason", e.getMessage()); // 将调用该函数失败的原因返回 return result; } // result.put("result", "successed"); return result; }
虽然在项目运用到了这个,昨天自己又从新搭建项目给大家提供一个演示例子,真的又弥补到了很多东西,包括struts2的配置请求方式,json数据转化解析过程,ajax请求机制,poi对excel,word等文件编辑操作等等。如果大家觉得可以请点个赞,你们的赞是我前进的动力。
另外大神们看了有什么问题请指出来,我虚心学习,需要演示项目源码的就在下方评论出来,大家一起分享学习。
需要演示项目的到我github上下载, https://github.com/chenpanpan0809/MyProjcet
别忘了点波推荐哦,大神们(*^_^*)