1、使用spring自带功能导出excel
public ModelAndView exportPurchasellReportInfo(HttpServletResponse response, @Json PurchaseSellReportQueryVo purchaseSellReportQueryVo) {
ModelAndView modelAndView = null;
try {
response.reset();// 清空输出流
response.setHeader("Content-disposition", "attachment; filename=" + new String("库存采购和售卖报表.xls".getBytes("GB2312"), "ISO8859-1"));
modelAndView = purchaseSellReportBusiness.queryPurchasellReportInfo(purchaseSellReportQueryVo);
} catch (Exception e) {
LOGGER.error("Export report failed. Param" + JsonUtil.toString(purchaseSellReportQueryVo), e);
Map<String, Object> exportMap = new HashMap<String, Object>();
List<ExportPurchaseSellReportVo> exportPurchaseSellReportList = new ArrayList<ExportPurchaseSellReportVo>();
exportPurchaseSellReportList.add(new ExportPurchaseSellReportVo());
exportMap.put(ExcelExportView.MODEL_KEY_ROWBEAN, exportPurchaseSellReportList);
exportMap.put(ExcelExportView.MODEL_KEY_SHEETNAME, "库存采购和售卖报表");
excelExportView.setAttributesMap(exportMap);
modelAndView = new ModelAndView(excelExportView);
}
return modelAndView;
}
public class ExcelExportView extends AbstractExcelView {
private static final Logger logger = LoggerFactory.getLogger(ExcelExportView.class);
private static final ExcelExportParser excelParser = new ExcelExportParser();
public static final String MODEL_KEY_ROWBEAN = "ROWBEAN";
public static final String MODEL_KEY_SHEETNAME = "SHEETNAME";
static {
try {
ConfigurableConversionService converService = new DefaultFormattingConversionService();
converService.addConverter(new NumberToStringConverter());
excelParser.setConverService(converService);
} catch (Exception e) {
logger.error("鍒濆鍖杄xcelParser鍑洪敊锛�", e);
}
}
@Override
protected void buildExcelDocument(Map<String, Object> model, HSSFWorkbook workbook, HttpServletRequest request,
HttpServletResponse response) throws Exception {
excelParser.writeWorkbook((List) model.get(MODEL_KEY_ROWBEAN), (Workbook) workbook,
(String) model.get(MODEL_KEY_SHEETNAME));
}
}