public void export( HttpServletResponse response){

//方式一
//.xls
//HSSFWorkbook xls1 = new HSSFWorkbook();
//.xlsx
//XSSFWorkbook xls1= new XSSFWorkbook();
//方式2
//.xls
//Workbook xls1 = new HSSFWorkbook();
//.xlsx 以此为例往下
Workbook
workbook = new XSSFWorkbook();

//创建sheet

Sheet sheet = workbook.createSheet("商品资料");
//创建行row:添加表头0行
Row row = sheet.createRow(0);
String[] titles = {"A","B","C","D"};//定义标题
Integer[] length={2000,1000,3000,4000};//定义列宽

Cell cell;//填充表头
for (int i = 0; i < titles.length; i++) {
cell = row.createCell(i);
cell.setCellValue(titles[i]);
sheet.setColumnWidth(i, length[i] * 2);
}
List<Object> list=new ArrayList<>();//需要填入的数据
//创建单元格,并设置值
for (int i = 0; i < exportGoods.size(); i++) {
int j = -1;
row = sheet.createRow(i + 1);
// 商品编码 国际条形码 商品名
row.createCell(++j).setCellValue(list.get(i).getA());
  row.createCell(++j).setCellValue(list.get(i).getB());
  row.createCell(++j).setCellValue(list.get(i).getC());
  row.createCell(++j).setCellValue(list.get(i).getD());

}
OutputStream outputStream = null;
try {
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("XXXX.xlsx", "utf-8"));
outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.flush();
} catch (UnsupportedEncodingException e) {
log.error("转换编码异常", e);
} catch (IOException e) {
log.error("文件输出异常", e);
} finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
log.error("OutputStream关闭异常", e);
}
}
}


}


posted on 2019-03-21 09:25  菌菌  阅读(108)  评论(0)    收藏  举报