service代码: /** * 导出员工信息 */ @Override public InputStream exportEmployeeExcel(List<?> list) { if(list==null){ throw new SystemException("list is null in exportEmployeeExcel method,it mustn't be null."); } ByteArrayOutputStream out = new ByteArrayOutputStream(); putDataOnOutputStream(out,list); return new ByteArrayInputStream(out.toByteArray()); } private void putDataOnOutputStream(OutputStream os,List<?> list) { if(list==null) throw new SystemException("list is null in exportEmployeeExcel method,it mustn't be null."); WritableWorkbook workbook; try { workbook = Workbook.createWorkbook(os); WritableSheet sheet = workbook.createSheet("Sheet1", 0); sheet.getSettings().setDefaultColumnWidth(20); sheet.addCell(new jxl.write.Label(0, 0, "id")); sheet.addCell(new jxl.write.Label(1, 0, "姓名")); sheet.addCell(new jxl.write.Label(2, 0, "性别")); sheet.addCell(new jxl.write.Label(3, 0, "年龄")); sheet.addCell(new jxl.write.Label(4, 0, "编号")); sheet.addCell(new jxl.write.Label(5, 0, "手机号")); sheet.addCell(new jxl.write.Label(6, 0, "身份证号")); sheet.addCell(new jxl.write.Label(7, 0, "级别")); sheet.addCell(new jxl.write.Label(8, 0, "部门")); sheet.addCell(new jxl.write.Label(9, 0, "家庭地址")); sheet.addCell(new jxl.write.Label(10, 0, "入职时间")); sheet.addCell(new jxl.write.Label(11, 0, "离职时间")); sheet.addCell(new jxl.write.Label(12, 0, "是否在职")); sheet.addCell(new jxl.write.Label(13, 0, "备注")); //循环遍历到数据集 for(int i= 0;i<list.size();i++){ Employee e = (Employee) list.get(i); sheet.addCell(new jxl.write.Label(0,i+1 ,e.getId()+"")); sheet.addCell(new jxl.write.Label(1,i+1 ,e.getName())); sheet.addCell(new jxl.write.Label(2,i+1 ,e.getGender()==1?"男":"女")); sheet.addCell(new jxl.write.Label(3,i+1 ,e.getAge()+"")); sheet.addCell(new jxl.write.Label(4,i+1 ,e.getBn())); sheet.addCell(new jxl.write.Label(5,i+1 ,e.getMobile())); sheet.addCell(new jxl.write.Label(6,i+1 ,e.getIdCard())); sheet.addCell(new jxl.write.Label(7,i+1 ,e.getLevelName())); sheet.addCell(new jxl.write.Label(8,i+1 ,e.getDepartmentName())); sheet.addCell(new jxl.write.Label(9,i+1 ,e.getAddress())); sheet.addCell(new jxl.write.Label(10,i+1 ,CommonUtil.getDate(e.getCreateTime()))); sheet.addCell(new jxl.write.Label(11,i+1 ,CommonUtil.getDate(e.getLeaveTime()))); sheet.addCell(new jxl.write.Label(12,i+1 ,e.getStatus()==1?"在职":"离职")); sheet.addCell(new jxl.write.Label(13,i+1 ,e.getRemark())); } workbook.write(); workbook.close(); } catch (Exception e) { logger.error("putDataOnOutputStream has some error:",e); throw new SystemException("putDataOnOutputStream has some error:",e); } }
action代码:
/** * 员工信息导出excel */ @SuppressWarnings("unchecked") public String exportEmployeeExcel() { DataGrid g = employeeService.gainEmployeeList(employee); List<Employee> list = g.getRows(); excelStream = employeeService.exportEmployeeExcel(list);// 导出excel表格 return "exportEmployeeExcel"; }
struts2配置文件代码:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="employee" extends="basePackage"> <action name="employeeExport" class="com.gx.employee.action.EmployeeAction"> <result name="exportEmployeeExcel" type="stream"> <param name="contentType"> application/vnd.ms-excel </param> <param name="inputName">excelStream</param> <param name="contentDisposition"> filename="employee.xls" </param> <param name="bufferSize">1024</param> </result> </action> </package> </struts>
相关推荐
struts2导出excel java 导出excel: JXL_excel: 可以直接在elipse下运行的例子 可以直接导出excel文件(包含所需的jar包) CSharpJExcel: 是JXL的官方下载的 包括详细的文档 和jar包
jxl.jar java导入/导出excel支持图片等二进制文件的操作
jxl导出excel加水印 WritableWorkbook、WritableSheet、WritableCellFormat
jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程 jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程
jxl导入导出excel 详细的描述了如何使用jxl导入导出excel。
jxl导出excel工具类,封装好了的,实现传递任意集合自动导出excel
使用jxl导出Excel表的好例子 导出excel表的例子
Android使用jxl快速导出excel表
Excel导入导出 jxl及Poi 工具类:jxl 实现 及 Poi实现 非常实用
使用jxl方式实现Excel表格导出,非常简单而且实用
利用JXL技术支持模板和非模板的表格导出
java_Jxl导入导出Excel,很详细的
jxl工具类导出excel,导出详细说明,及相关代码和jar,如有不明白私聊
java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图
jxl从数据库中直接导出excel文档java源码
java版本通过JXL使用模板导出EXCEL
绝对不会让你失望。自己找了好多帮助才实现的哦,希望对你有帮助。互相学习
java excel jxl导出源码
jxlapi和jar包 博文链接:https://dhl004.iteye.com/blog/1324644
jxl导出Excel基础,非常有用的一个东西,漫漫看