本文共 2012 字,大约阅读时间需要 6 分钟。
碰到这个问题是在需求poi导出Excel的过程实现中。
使用的前端框架为jquery-easyui,如果要将easyui的数据表格的数据导出为一个Excel表,则面临以下的选择 1.要么将如果传入前端的数据重新再数据库里查一遍。 2.要么将前端的数据直接传给后台导出。 在查阅了大量资料及手动操作实现, 前端大致为这样的一种写法:
function queryArrears_export() { var row=$('#queryArrears_list').datagrid('getRows'); $.ajax( { type : 'POST', url : '${ctx}/statistics/queryArrears/export', async : false, dataType : "json", cache : false, data: {"row":JSON.stringify(row)}, success : function(result) { if (result.status == 200) { $.messager.show( { title : '提示信息!', msg : result.msg }) } /* 从服务器下载 */ window.location.href = '${ctx}/sys/file/xiazai?type=3'; }, error :function(result) { console.log(result.msg); } }); }
将行对象存为row,再将该json值转换为String类型发向后台,因为json传向后台会被转换成String,后台接受的值是String的。
其中走了很多的弯路,最后是通过这样的写法后台才成功接受到row对象。
再就是通过后台对row对象的处理,以JSONArray接收row对象,再遍历其取出其中的数据存入list,最后再传给工具类使用poi导出。
后台的代码如下:
@RequestMapping(value = "export") @ResponseBody public CommonJsonResult export( Model model, HttpServletRequest request,String row) throws IOException { CommonJsonResult commonJsonResult = null; ReadExcel excel=new ReadExcel(); List记下这篇博客其实是很久前再我的个人微博完成的,现在重新拿过来改了一改。 同时,我也很感谢那时候的我记下这样的博客,在后续工作中,我就面临到好几次要实现导出 Excel的功能。 而这时候,翻翻自己博客,就节约了很多很多的时间。list=new ArrayList (); //对row对象的处理 row=row.replace("&(quot;", "\""); JSONArray jsonArray = new JSONArray(row); for(int i=0;i
转载地址:http://vriob.baihongyu.com/