java导出excel

dystyle

贡献于2014-10-13

字数:4755 关键词: Office文档处理

 截图如下: 说明:点击“导出”按钮,会弹出一个“数据导出框”,里面列出了相关的所有数据列。用户可以根据需要选择多条需要导出的列,到右边“已经选择的字段”中。 并且可以通过“上移、下移”调整列在导出的excel中的顺序。最后点击右下角的导出按钮开始导出数据,导完以后会提示如下: 点击下载,生成excel文档 分析:1)在主页面新建一个
层,用来做“数据导出弹出框”。并且这个框是左右布局。 2)要取得所有字段的list集合,点击>>箭头,把新的部分字段填充一个新的集合。 3)点击“导出”触发事件,调用excel生成方法,生成excel。 4)点击“下载”点击的实际上是一个已经生成好的excel的路径。 5)在系统配置文件中配置下载路径。用poi做的。 Action: /** * 数据导出 * @return * @throws Exception * @author pjj , Date:2013-08-15 */ public String exportDataExcel() throws Exception { try { /* 这段代码是拷贝list方法中获取数据的代码,最终得到page对象 begin */ List filters = PropertyFilter .buildFromHttpRequest(Struts2Utils.getRequest()); Page page=new Page(5); // 设置分页条数 page.setPageSize(StringValueUtils.getInt(Struts2Utils.getRequest() .getParameter("pagesize"))); // 设置跳转页 page.setPageNo(StringValueUtils.getInt(Struts2Utils.getRequest() .getParameter("page"), 1)); page.setOrderBy("createtime"); page.setOrder(Page.DESC); page = proNewsClueManager.searchProNewsClue(page, filters); List counselsList = page.getResult(); for (int i = 0; i < counselsList.size(); i++) { ProNewsClue tmp = counselsList.get(i); tmp.setFeedbackname(proNewsClueManager.findFeedBack(tmp.getPronewsid())); counselsList.set(i, tmp); } page.setResult(counselsList); /* 这段代码是拷贝list方法中获取数据的代码,最终得到page对象 end这段代码是获得查询后的page对象。同getlist里面一模一样。 */ // 获取要导出的字段集合 String exportDataProperties = "[" + Struts2Utils.getRequest().getParameter( "exportDataProperties") + "]"; JSONArray properties = JSONArray.fromObject(exportDataProperties); String objName="ProNewsClue" ; long beginNum = page.getFirst() ; long endNum = page.getPageNo()*page.getPageSize()<=page.getTotalCount()?page.getPageNo()*page.getPageSize():page.getTotalCount(); String excelName = objName + "[" + beginNum + "-" + endNum + "]" + "-" +System.currentTimeMillis()+".xls"; String excelPath = ExprotDataToExcel.createExcelFile(excelName) ; ExprotDataToExcel.generateExcel(excelPath, page, properties) ; // 组织返回数据 HttpServletRequest request = ServletActionContext.getRequest (); String webUrl 拼一个下载路径 = request.getScheme()+ "://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath(); String excelUrl = webUrl + "/exportExcel/" + excelName ; JSONObject ret = new JSONObject(); ret.put("excelUrl", excelUrl); Struts2Utils.renderJson(ret); } catch (Exception ex) { System.out.println(ex);提示异常信息 JSONObject ret = new JSONObject(); ret.put("isOK", false); ret.put("excelUrl", ""); Struts2Utils.renderJson(ret); } return NONE ; } Service: Dao: Js: Jsp: /*调用数据导出begin add by pjj Date:2013-08-15 */ $(function(){ // 定义供复杂查询使用的字段属性 var exportDataProperties = [ {'propertyKey':'pronewsid','propertyText':'新闻线索id'}, {'propertyKey':'content','propertyText':'新闻线索内容'}, {'propertyKey':'strStatus','propertyText':'状态'},// 0:待处理 1:已处理 {'propertyKey':'customname','propertyText':'客户名称'}, {'propertyKey':'phonenum','propertyText':'联系电话'}, { 'propertyKey':'address','propertyText':'客户地址'}, {'propertyKey':'createrUser.username','propertyText':'录入人'},//(存用户loginname) {'propertyKey':'createtime','propertyText':'录入时间'}, {'propertyKey':'processorUser.username','propertyText':'处理人'},//(存用户loginname) {'propertyKey':'updaterUser.username','propertyText':'最后修改人'}, {'propertyKey':'lastmodify','propertyText':'最后修改时间'}, {'propertyKey':'memo','propertyText':'备注'}, {'propertyKey':'feedbackname','propertyText':'反馈对象'}//关联 /* callid [varchar](64) NULL --cti呼叫ID */ ] ; initExportData("maingrid","newsclue",exportDataProperties) ; }); /*调用数据导出end */

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ]
1 人已下载

下载文档

相关文档