pom
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
@RequestMapping("/download")
public String downloadOrderFile(HttpServletResponse response) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String excelName = "备货导出" + sdf.format(new Date()) + ".xlsx";
String[] header = {"备货单号", "品牌", "型号", "尺寸", "内部型号", "总数", "到库", "在途",
"直发", "更新时间", "创建时间"};
try {
// 创建新的Excel 工作簿
XSSFWorkbook workbook = new XSSFWorkbook();
// 在Excel工作簿中建一工作表,其名为缺省值
XSSFSheet sheet = workbook.createSheet();
XSSFRow r = sheet.createRow(0);
for (int i = 0; i < header.length; i++) {
r.createCell(i).setCellValue(header[i]);
}
ArrayList<Stock> stocks = (ArrayList<Stock>) stockService.listStocks(null, 1, 10000).getList();
for (int i = 0; i < stocks.size(); i++) {
Stock stock = stocks.get(i);
XSSFRow row = sheet.createRow(i + 1);
row.createCell(0).setCellValue(stock.getStockNo());
Goods goods = stock.getGoods();
row.createCell(1).setCellValue(goods.getBrand());
row.createCell(2).setCellValue(goods.getModel());
row.createCell(3).setCellValue(goods.getSize());
row.createCell(4).setCellValue(goods.getInternalModel());
row.createCell(5).setCellValue(stock.getTotal());
row.createCell(6).setCellValue(stock.getWarehouseNum());
row.createCell(7).setCellValue(stock.getWayNum());
row.createCell(8).setCellValue(stock.getDirectNum());
row.createCell(9).setCellValue(sdf.format(stock.getUpdateTime()));
row.createCell(10).setCellValue(sdf.format(stock.getCreateTime()));
}
// 清空response
response.reset();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + new String(excelName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
OutputStream os = new BufferedOutputStream(response.getOutputStream());
workbook.write(os);
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}