1. Maven中添加POI
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
2. 创建excel工作簿
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("附件1");
3. 创建行列
跨行跨列合并使用(需在创建单元格之前合并)
4个参数为(开始行, 开始列, 结束行, 结束列)
以下代码的结果为第一行中,第一列和第二列单元格合并
sheet.addMergedRegion(new Region(0, (short) 0, 0, (short) 1));
行数由0开始,表示创建第一行数据
HSSFRow row = sheet.createRow(0);
列数由0开始,表示创建第一个单元格,并可设置单元格样式
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue(cellName1);
cell.setCellStyle(style);
- 文件流返回给前端
@RequestMapping("/exportFile")
@ResponseBody
public void exportFile(@RequestParam Map<String, Object> params, HttpServletResponse response){
try {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("附件1");
// 处理内容...
String fileName= new String("抄码明细表.xlsx".getBytes("UTF-8"),"iso-8859-1");
OutputStream output = response.getOutputStream();
response.setHeader("Content-disposition","attachment; filename="+ fileName);
response.setContentType("application/msexcel");
wb.write(output);
output.close();
} catch (Exception e) {
e.printStackTrace();
}
}
- 前端下载文件(get请求)
var linkUrl = url;
if (
navigator.userAgent.indexOf("Chrome") > -1 &&
navigator.userAgent.indexOf("Safari") > -1
) {
var a = document.createElement("a");
a.href = linkUrl;
a.click();
} else {
window.open(linkUrl, "_blank");
}