public String getSentBillExcelDownloadFile( Bill condition, Date fromDate, Date toDate, String currMan, String accountName) { List<Bill> billList = billDao.getSentBillList(condition, fromDate, toDate, currMan, accountName); String path = Thread.currentThread().getContextClassLoader().getResource("/").getPath(); path = path.substring(0, path.indexOf("WEB-INF")); path += "excel"; System.out.println("excel saved path : " + path); // String sourceFile = path + File.separator + "template.xls"; String targetFile = path + File.separator + System.currentTimeMillis() + ".xls"; Workbook rw = null; try { WritableWorkbook workbook = Workbook.createWorkbook(new File(targetFile)); WritableSheet sheet = workbook.createSheet("单据列表", 0); // 加表头 WritableFont font = new WritableFont(WritableFont.TIMES, 12, WritableFont.BOLD); WritableCellFormat format = new WritableCellFormat(font); sheet.addCell(new Label(0, 0, "编号", format)); sheet.addCell(new Label(1, 0, "供货厂商", format)); sheet.addCell(new Label(2, 0, "饲料厂商", format)); sheet.addCell(new Label(3, 0, "计划到料日期", format)); sheet.addCell(new Label(4, 0, "发料日期", format)); sheet.addCell(new Label(5, 0, "到料日期", format)); sheet.addCell(new Label(6, 0, "规格", format)); sheet.addCell(new Label(7, 0, "用料量(吨)", format)); sheet.addCell(new Label(8, 0, "合计金额", format)); sheet.addCell(new Label(9, 0, "单据状态", format)); sheet.addCell(new Label(10, 0, "当前处理人", format)); sheet.addCell(new Label(11, 0, "所属区域", format)); // 加内容 int i = 1; for (Bill f : billList) { sheet.addCell(new Number(0, i, f.getId())); sheet.addCell(new Label(1, i, f.getProvider().getName())); sheet.addCell(new Label(2, i, f.getFactory().getName())); sheet.addCell(new Label(3, i, f.getPlanDate().toString())); sheet.addCell(new Label(4, i, Util.getDate(f.getSendDate()))); // 发料日期 sheet.addCell(new Label(5, i, Util.getDate(f.getFinishDate()))); // 到料日期 sheet.addCell(new Label(6, i++, f.getSize())); sheet.addCell(new Number(7, i++, f.getAmount())); sheet.addCell(new Label(8, i++, f.getBillPrice())); sheet.addCell(new Label(9, i++, f.getStatusTxt())); sheet.addCell(new Label(10, i++, f.getCurrUserName())); // 当前处理人 sheet.addCell(new Label(11, i++, f.getFarm().getName())); } workbook.write(); workbook.close(); return targetFile; } catch (Exception e) { e.printStackTrace(); } finally { if (rw != null) rw.close(); } return null; }