jxl 导出为Excel文件
最近几天在做Excel导入导出的练习,今天刚好做了导出为Excel文件的模块,有好多还不是很理解,好多的是参照别人的代码。
1.首先导入相应的jar包,这里就不多说了,网上很容易就可以找的到;
2.自己写了一个导出类:
package utils;import java.io.IOException;import java.io.OutputStream;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.List;import org.aspectj.weaver.NewConstructorTypeMunger;import jxl.Workbook;import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;import jxl.write.biff.RowsExceededException;import EmpExcel.model.EmployeeInfo;public class ExportEmployee {public static void ExportEmployee(OutputStream os, List<EmployeeInfo> employeeInfos) { try { //打开文件WritableWorkbook book = Workbook.createWorkbook(os);//生成名为“员工信息”的工作表,参数0表示这是第一页 WritableSheet sheet = book.createSheet("员工信息",0 ); //第一行为标题行 Label label00 = new Label(0, 0, "员工编号"); Label label10 = new Label(1, 0, "员工姓名"); Label label20 = new Label(2, 0, "员工性别"); Label label30 = new Label(3, 0, "国籍"); Label label40 = new Label(4, 0, "身份证号"); sheet.addCell(label00); sheet.addCell(label10); sheet.addCell(label20); sheet.addCell(label30); sheet.addCell(label40); //循环导出数据到excel的label中for (int i = 1; i < employeeInfos.size(); i++) {EmployeeInfo employeeInfo = employeeInfos.get(i);Label label0i = new Label(0, i, employeeInfo.getEmployeeNumber());Label label1i = new Label(1, i, employeeInfo.getFullName());Label label2i = new Label(2, i, employeeInfo.getSex());Label label3i = new Label(3, i, employeeInfo.getNationality());/*if(employeeInfo.getDateOfBirth() != null){DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");label3i = new Label(3, i, format1.format(employeeInfo.getDateOfBirth()));}*/Label label4i = new Label(4, i, employeeInfo.getEmployeeNumber());sheet.addCell(label0i); sheet.addCell(label1i); sheet.addCell(label2i); sheet.addCell(label3i); sheet.addCell(label4i);}//写入数据并关闭文件book.write();book.close();} catch (IOException e) {e.printStackTrace();} catch (RowsExceededException e) {e.printStackTrace();} catch (WriteException e) {e.printStackTrace();}}}String reportName = "员工信息";response.setContentType("application/msexcel;charset=UTF-8"); response.setCharacterEncoding("UTF-8");response.setHeader("Content-Disposition", "attachment;filename="+java.net.URLEncoder.encode(reportName+".xls", "UTF-8")); response.addHeader("Pargam", "no-cache"); response.addHeader("Cache-Control", "no-cache"); List<EmployeeInfo> employeeInfos = this.searchEmployeeInfos(request,response);OutputStream os = response.getOutputStream();//调用导出Excel的方法ExportEmployee.ExportEmployee(os, employeeInfos);response.getOutputStream().flush();response.getOutputStream().close();