poi导出Excel直接在浏览器下载
生活随笔
收集整理的這篇文章主要介紹了
poi导出Excel直接在浏览器下载
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
需求:導(dǎo)出成Excel格式,要在瀏覽器看到類似于下載的效果。
導(dǎo)出的Excel和下載在同一個(gè)目錄下。
xxController.java
// 導(dǎo)出
@RequestMapping(value = "/createExcelToDisk", method = RequestMethod.GET, produces = "application/json;charset=utf-8")
public @ResponseBody String createExcelToDisk(HttpServletResponse response,List<Object>valueList,) throws IOException, IllegalAccessException, ClassNotFoundException {
response.reset(); // 清除buffer緩存
// 指定下載的文件名
response.setHeader("Content-Disposition", "attachment;filename=contacts" + CurrentTime.getDateTime() + ".xlsx");
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
XSSFWorkbook workbook = null;
try {
workbook = ExcelUtils.exportContacts(valueList);
OutputStream output;
try {
output = response.getOutputStream();
BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output);
bufferedOutPut.flush();
workbook.write(bufferedOutPut);
bufferedOutPut.close();
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e1) {
e1.printStackTrace();
}
return null;
}
ExcelUtils.java
package com.ky.lm.util.common;
import java.util.List;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelUtils {
public static XSSFWorkbook exportContacts(List<Object> valueList)
throws IllegalArgumentException, IllegalAccessException, ClassNotFoundException {
XSSFWorkbook xssfWorkbook = null;
String sheetName = "客戶列表";
xssfWorkbook = createExcelFile(valueList, sheetName);
return xssfWorkbook;
}
public static XSSFWorkbook createExcelFile(List<Object> valueList, String sheetName)
throws IllegalArgumentException, IllegalAccessException, ClassNotFoundException {
// 創(chuàng)建新的Excel工作簿
XSSFWorkbook workbook = new XSSFWorkbook();
// 在Excel工作簿中建一工作表,其名為缺省值, 也可以指定Sheet名稱
XSSFSheet sheet = workbook.createSheet(sheetName);
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue("姓名");
cell = row.createCell(1);
cell.setCellValue("年齡");
for (int i = 0; i < valueList.size(); i++) {
row = sheet.createRow((int) i + 1);
row.createCell(i).setCellValue(valueList[i]);
}
return workbook;
}
}
效果
這里補(bǔ)充一個(gè)要點(diǎn):導(dǎo)出直接在瀏覽器下載這樣的格式 !!不支持ajax!! 最好用a標(biāo)簽來寫。
有什么不明白的可以在評(píng)論里提問哦 ^ - ^ !
總結(jié)
以上是生活随笔為你收集整理的poi导出Excel直接在浏览器下载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xfce中鼠标的“反转卷轴方向“
- 下一篇: 几款软件需求分析工具