java将list导出为xls文件

<dependency>
     <groupId>org.apache.poi</groupId>
     <artifactId>poi</artifactId>         
 <version>3.11</version> </dependency>

一.action层

/**

* 导出list

*/

@SuppressWarnings("unchecked")

public void exportBatch() {

request = ServletActionContext.getRequest();

response = ServletActionContext.getResponse();

String batchNo = request.getParameter("batchNo");

try {

//查询导出List<T>列

exportlList = this.batchService.findExportBatchService(batchNo);

} catch (Exception e) {

e.printStackTrace();

}

//导出表格

HSSFWorkbook wb = batchService.exportBatch(exportlList);

File xlsFile = new File("D://" + "fielName.xls");

try {

FileOutputStream fos = new FileOutputStream(xlsFile);

wb.write(fos);

fos.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

try {

String fileName = "fielName.xls";

response.setCharacterEncoding("utf-8");

response.setContentType("multipart/xls");

response.setHeader("Location", fileName);

response.setHeader("Content-Disposition", "attachment;fileName="+ new String((xlsFile.getName()).getBytes("UTF-8")));

ServletOutputStream os = response.getOutputStream();

BufferedOutputStream bos = new BufferedOutputStream(os);

FileInputStream fis = new FileInputStream(xlsFile);

byte[] b = new byte[1000];

int length;

while ((length = fis.read(b)) > 0) {

bos.write(b, 0, length);

}

os.flush();

bos.flush();

os.close();

bos.close();

fis.close();

xlsFile.delete();

} catch (Exception e1) {

e1.printStackTrace();

}

}

二、serviceImpl层

/**

* 导出Excel

*/

@SuppressWarnings("deprecation")

public HSSFWorkbook exportBatch(List<SecurityCode> list) {

//获取客户端访问路径

String qRCodeUrl="http://www.baidu.com";

// 第一步,创建一个webbook,对应一个Excel文件

HSSFWorkbook wb = new HSSFWorkbook();

// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet

String cardInfoName = "sheet页名";

HSSFSheet sheet = wb.createSheet(cardInfoName);

// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short

HSSFRow row = sheet.createRow((int) 0);

// 第四步,创建单元格,并设置值表头 设置表头居中

HSSFCellStyle style = wb.createCellStyle();

style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式

HSSFCell cell = row.createCell((short) 0);

//"列名一、"列名二、"列名三、"列名四、"列名五、"列名六。

cell.setCellValue("列名一");

cell.setCellStyle(style);

cell = row.createCell((short) 1);

cell.setCellValue("列名一");

cell.setCellStyle(style);

cell = row.createCell((short) 2);

cell.setCellValue("列名一");

cell.setCellStyle(style);

cell = row.createCell((short) 3);

cell.setCellValue("列名一");

cell.setCellStyle(style);

cell = row.createCell((short) 4);

cell.setCellValue("列名一");

cell.setCellStyle(style);

cell = row.createCell((short) 5);

cell.setCellValue("列名一");

cell.setCellStyle(style);

cell = row.createCell((short) 6);

cell.setCellValue("列名一");

cell.setCellStyle(style);

for (int i = 0; i < list.size(); i++) {

row = sheet.createRow((int) i + 1);

SecurityCode m = list.get(i);

row.createCell((short) 0).setCellValue(i + 1);

row.createCell((short) 1).setCellValue(m.getBatchNo() == null || "null".equals(m.getBatchNo()) ? "" : m.getBatchNo().toString());

row.createCell((short) 2).setCellValue(m.getProductNo() == null || "null".equals(m.getProductNo() ) ? "" : m.getProductNo() .toString());

row.createCell((short) 3).setCellValue(m.getProductName() == null|| "null".equals(m.getProductName()) ? "" : m.getProductName().toString());

row.createCell((short) 4).setCellValue(m.getCreateTime() == null|| "null".equals(m.getCreateTime()) ? "" : m.getCreateTime().toString());

row.createCell((short) 5).setCellValue(m.getSecurityNo() == null|| "null".equals(m.getSecurityNo()) ? "" : m.getSecurityNo().toString());

row.createCell((short) 6).setCellValue(qRCodeUrl == null|| "null".equals(qRCodeUrl) ? "" :qRCodeUrl.toString()+m.getSecurityNo());

}

return wb;

}