Java poi导出Excel下载到客户端

Java poi 导出Excel并下载到客户端,具体内容如下

Maven配置,包含了其他文件格式的依赖,就全贴出来了

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-excelant</artifactId>

<version>3.12</version>

</dependency>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-scratchpad</artifactId>

<version>3.12</version>

</dependency>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>3.8</version>

</dependency>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml-schemas</artifactId>

<version>3.8</version>

</dependency>

Service层

@Override

public void export(Long sblsh, String excelName, OutputStream out) {

try {

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

HSSFWorkbook wb = new HSSFWorkbook();

//生成一个表格

HSSFSheet sheet = wb.createSheet(excelName);

// 第三步,在sheet中添加表头第0行

HSSFRow row = sheet.createRow(0);

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

HSSFCellStyle style = wb.createCellStyle();

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

HSSFCell cell = row.createCell(0);

cell.setCellStyle(style);

Byte kjzz = qyjbxxMapper.getKjzz(sblsh);

List<A> record = this.selectBySblsh(sblsh);

this.insertData(wb, sheet, row, record, out);

}

} catch (Exception e) {

logger.info(e.getMessage());

}

}

/**

* 导入数据到表格中

* @param wb execl文件

* @param sheet 表格

* @param row 表格行

* @param record 要导出的数据

* @param out 输出流

*/

private void insertData(HSSFWorkbook wb,HSSFSheet sheet,HSSFRow row,List<A> record,

OutputStream out){

try {

row = sheet.createRow(1);

for(int i=0;i<title.length;i++){

row.createCell(i).setCellValue(title[i]);

}

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

row = sheet.createRow(i+2);

A data = record.get(i);

row.createCell(0).setCellValue(data.getHc());

row.createCell(1).setCellValue(data.getXm());

BigDecimal je = data.getJe();

if(je!=null){

row.createCell(2).setCellValue(je.doubleValue());

}

}

//合并单元格,前面2位代表开头结尾行,后面2位代表开头结尾列

CellRangeAddress region = new CellRangeAddress(0,0,0,title.length-1);

sheet.addMergedRegion(region);

wb.write(out);

out.flush();

out.close();

wb.close();

} catch (Exception e) {

logger.info(e.getMessage());

}

}

Controller

@RequestMapping("/export")

public void export(Long sblsh, HttpServletRequest request, HttpServletResponse response){

response.setContentType("octets/stream");

String excelName = "文件名";

try {

response.addHeader("Content-Disposition", "attachment;filename="+new String(excelName.getBytes("gb2312"), "ISO8859-1" )+".xls");

OutputStream out = response.getOutputStream();

aService.export(sblsh,excelName ,out);

} catch (Exception e) {

e.printStackTrace();

}

}

以上是 Java poi导出Excel下载到客户端 的全部内容, 来源链接: utcz.com/z/339846.html

回到顶部