jxl导出excel

/*** 统一设置导出格式
* 
* @param res
*/
public WritableSheet makeExcel(WritableWorkbook wbook,
HttpServletResponse res, String title, int n, String zy,
String customer) {
try {
res.setContentType("application/msexcel;charset=GBK");// 定义输出类型
res.setHeader("Content-Disposition", "attachment; filename="
+ new String(zy.getBytes("GBK"), "ISO8859-1") + "("
+ sf.format(new Date()) + ")" + ".xls");// 设定输出文件头
if (null != customer && "settlement".equals(customer)) {
headerFont = new WritableFont(WritableFont.createFont("新宋体"),
8, WritableFont.BOLD, false,
UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
} else {
headerFont = new WritableFont(WritableFont.createFont("新宋体"),
10, WritableFont.BOLD, false,
UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
}
headerFormat = new WritableCellFormat(headerFont);
if (null != customer && "settlement".equals(customer)) {
dataFont = new WritableFont(WritableFont.createFont("新宋体"), 8,
WritableFont.NO_BOLD, false,
UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
} else {
dataFont = new WritableFont(WritableFont.createFont("新宋体"), 10,
WritableFont.NO_BOLD, false,
UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
}
dataFormat = new WritableCellFormat(dataFont);
if (null != customer && "settlement".equals(customer)) {
dataFormat.setWrap(true); // 设置自动换行
}
titleFont = new WritableFont(WritableFont.createFont("新宋体"), 14,
WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK);
centerFormat = new WritableCellFormat(titleFont);
totleFont = new WritableFont(WritableFont.createFont("新宋体"), 10,
WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.RED);
totleFormat = new WritableCellFormat(totleFont);
fontColorFormat = new WritableCellFormat(totleFont);
fontColorFormat.setAlignment(jxl.write.Alignment.LEFT); // 设置水平对齐方式
fontColorFormat.setVerticalAlignment(VerticalAlignment.CENTRE);// 设置对齐方式
centerFormat.setAlignment(jxl.write.Alignment.CENTRE);
centerFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
totleFormat.setAlignment(jxl.write.Alignment.CENTRE);
totleFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
headerFormat.setAlignment(jxl.write.Alignment.LEFT);
headerFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
dataFormat.setAlignment(jxl.write.Alignment.LEFT);
dataFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
WritableSheet wsheet = wbook.createSheet(title, 0); // sheet名称
wsheet.getSettings().setVerticalFreeze(2);// 冻结
if (null != customer && "customer".equals(customer)) {
wsheet.getSettings().setVerticalFreeze(3);// 冻结
wsheet.mergeCells(4, 1, 7, 1);// 合并单元格
wsheet.mergeCells(8, 1, 10, 1);// 合并单元格
wsheet.mergeCells(11, 1, 14, 1);// 合并单元格
wsheet.mergeCells(15, 1, 27, 1);// 合并单元格
wsheet.addCell(new Label(4, 1, "进库", headerFormat));// 设置 标题格式
wsheet.addCell(new Label(8, 1, "库存", headerFormat));// 设置 标题格式
wsheet.addCell(new Label(11, 1, "出库", headerFormat));// 设置 标题格式
}
if (null != customer && "settlement".equals(customer)) {
wsheet.getSettings().setVerticalFreeze(4);// 冻结
}
wsheet.mergeCells(0, 0, n, 0);// 合并单元格
wsheet.setRowView(0, 500); // 设置行的高度
for (int i = 0; i <= n; i++) {
wsheet.setColumnView(i, 18);// 设置列的宽度
}
wsheet.addCell(new Label(0, 0, title, centerFormat));// 设置 标题格式
wf = new WritableCellFormat(dataFormat);
wf.setBorder(Border.ALL, BorderLineStyle.THIN); // 添加边框
wj = new WritableCellFormat(totleFormat);
wj.setBorder(Border.ALL, BorderLineStyle.THIN); // 添加边框
wl = new WritableCellFormat(fontColorFormat);
return wsheet;
} catch (Exception e1) {
e1.printStackTrace();
return null;
}
}
/**
* 客户对账单导出
* 
* @param mtWmsFinanceDto
* @param res
* @param path
*/
public void customerStatements_export(MtWmsFinanceDto mtWmsFinanceDto,
HttpServletResponse res, String path, SysUser sysUser) {
try {
List<MtWmsFinanceDto> mtWmsFinanceDtolist = mtWmsFinanceService
.findAllByCustomer(mtWmsFinanceDto);
OutputStream os = res.getOutputStream();
WritableWorkbook wbook = Workbook.createWorkbook(os); // 建立excel文件
WritableSheet wsheet = makeExcel(wbook, res, new String(pm.get(
"setStatement").getBytes("8859_1"), "utf-8"), 27,
new String(pm.get("setStatement").getBytes("8859_1"),
"utf-8"), "customer");
wsheet.addCell(new Label(0, 2, new String(pm.get("intoGoodsNo")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(1, 2, new String(pm.get("customerName")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(2, 2, new String(pm.get("memo6").getBytes(
"8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(3, 2, new String(pm.get("googsName")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(4, 2, new String(pm.get("date").getBytes(
"8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(5, 2, new String(pm.get("cube").getBytes(
"8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(6, 2, new String(pm.get("quantity")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(7, 2, new String(pm.get("weight")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(8, 2, new String(pm.get("cube").getBytes(
"8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(9, 2, new String(pm.get("quantity")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(10, 2, new String(pm.get("weight")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(11, 2, new String(pm.get("date").getBytes(
"8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(12, 2, new String(pm.get("cube").getBytes(
"8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(13, 2, new String(pm.get("quantity")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(14, 2, new String(pm.get("weight")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(15, 2, new String(pm.get("storageMethods")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(16, 2, new String(pm.get("goodsPrice")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(17, 2, new String(pm.get("billingDays")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(18, 2, new String(pm.get("storageFeeCost")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(19, 2, new String(pm.get(
"storageFeeUncost").getBytes("8859_1"), "utf-8"),
headerFormat));
wsheet.addCell(new Label(20, 2, new String(pm
.get("intoLibraryCost").getBytes("8859_1"), "utf-8"),
headerFormat));
wsheet.addCell(new Label(21, 2, new String(pm.get(
"intoLibraryUncost").getBytes("8859_1"), "utf-8"),
headerFormat));
wsheet.addCell(new Label(22, 2, new String(pm.get("outLibraryCost")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(23, 2, new String(pm.get(
"outLibraryUncost").getBytes("8859_1"), "utf-8"),
headerFormat));
wsheet.addCell(new Label(24, 2, new String(pm.get("otherCost")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(25, 2, new String(pm.get("otherUncost")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(26, 2, new String(pm.get("totleFee")
.getBytes("8859_1"), "utf-8"), headerFormat));
wsheet.addCell(new Label(27, 2, new String(pm.get("shouldFee")
.getBytes("8859_1"), "utf-8"), headerFormat));
if (mtWmsFinanceDtolist != null && mtWmsFinanceDtolist.size() > 0) {
for (int i = 1; i < mtWmsFinanceDtolist.size() + 1; i++) {
MtWmsFinanceDto financeDto = (MtWmsFinanceDto) mtWmsFinanceDtolist
.get(i - 1);
wsheet.setRowView(i + 1, 300); // 设置行的高度
wsheet.addCell(new Label(0, i + 2, null != financeDto
.getGoodsNo() ? financeDto.getGoodsNo() : "", wf));
wsheet.addCell(new Label(1, i + 2, null != financeDto
.getCustomerName() ? financeDto.getCustomerName()
: "", wf));
wsheet.addCell(new Label(2, i + 2, null != financeDto
.getMemo6() ? financeDto.getMemo6() : "", wf));
wsheet.addCell(new Label(3, i + 2, null != financeDto
.getGoodsName() ? financeDto.getGoodsName() : "",
wf));
wsheet
.addCell(new Label(4, i + 2, null != financeDto
.getIntoDate() ? financeDto.getIntoDate()
: "", wf));
wsheet.addCell(new Label(5, i + 2, null != financeDto
.getIntoGoodsVolume() ? financeDto
.getIntoGoodsVolume()
+ "" : 0 + "", wf));
wsheet.addCell(new Label(6, i + 2, null != financeDto
.getIntoGoodsNumber() ? financeDto
.getIntoGoodsNumber()
+ "" : 0 + "", wf));
wsheet.addCell(new Label(7, i + 2, null != financeDto
.getIntoGoodsGrossWeight() ? financeDto
.getIntoGoodsGrossWeight()
+ "" : 0 + "", wf));
wsheet.addCell(new Label(8, i + 2, null != financeDto
.getFreeGoodsVolume() ? financeDto
.getFreeGoodsVolume()
+ "" : 0 + "", wf));
wsheet.addCell(new Label(9, i + 2, null != financeDto
.getFreeGoodsNumber() ? financeDto
.getFreeGoodsNumber()
+ "" : 0 + "", wf));
wsheet.addCell(new Label(10, i + 2, null != financeDto
.getFreeGoodsGrossWeight() ? financeDto
.getFreeGoodsGrossWeight()
+ "" : "", wf));
wsheet.addCell(new Label(11, i + 2, null != financeDto
.getOutDate() ? financeDto.getOutDate() : "", wf));
wsheet.addCell(new Label(12, i + 2, null != financeDto
.getLastGoodsVolume() ? financeDto
.getLastGoodsVolume()
+ "" : 0 + "", wf));
wsheet.addCell(new Label(13, i + 2, null != financeDto
.getLastGoodsNumber() ? financeDto
.getLastGoodsNumber()
+ "" : 0 + "", wf));
wsheet.addCell(new Label(14, i + 2, null != financeDto
.getLastGoodsGrossWeight() ? financeDto
.getLastGoodsGrossWeight()
+ "" : 0 + "", wf));
wsheet.addCell(new Label(15, i + 2, null != financeDto
.getDepotFashion() ? financeDto.getDepotFashion()
: "", wf));
wsheet.addCell(new Label(16, i + 2, null != financeDto
.getGoodsPrice() ? financeDto.getGoodsPrice() + ""
: 0 + "", wf));
wsheet.addCell(new Label(17, i + 2, null != financeDto
.getBillingDays() ? financeDto.getBillingDays()
+ "" : 0 + "", wf));
wsheet.addCell(new Label(18, i + 2, null != financeDto
.getStorageFee() ? new BigDecimal(financeDto
.getStorageFee()).setScale(2,
BigDecimal.ROUND_HALF_UP).doubleValue()
+ "" : "0", wf));
wsheet.addCell(new Label(19, i + 2, null != financeDto
.getStorageUnfee() ? new BigDecimal(financeDto
.getStorageUnfee()).setScale(2,
BigDecimal.ROUND_HALF_UP).doubleValue()
+ "" : "0", wf));
wsheet.addCell(new Label(20, i + 2, null != financeDto
.getIntoLibrary() ? new BigDecimal(financeDto
.getIntoLibrary()).setScale(2,
BigDecimal.ROUND_HALF_UP).doubleValue()
+ "" : "0", wf));
wsheet.addCell(new Label(21, i + 2, null != financeDto
.getIntoUnlibrary() ? new BigDecimal(financeDto
.getIntoUnlibrary()).setScale(2,
BigDecimal.ROUND_HALF_UP).doubleValue()
+ "" : "0", wf));
wsheet.addCell(new Label(22, i + 2, null != financeDto
.getOutLibrary() ? new BigDecimal(financeDto
.getOutLibrary()).setScale(2,
BigDecimal.ROUND_HALF_UP).doubleValue()
+ "" : "0", wf));
wsheet.addCell(new Label(23, i + 2, null != financeDto
.getOutUnlibrary() ? new BigDecimal(financeDto
.getOutUnlibrary()).setScale(2,
BigDecimal.ROUND_HALF_UP).doubleValue()
+ "" : "0", wf));
wsheet.addCell(new Label(24, i + 2, null != financeDto
.getLastAnchor() ? new BigDecimal(financeDto
.getLastAnchor()).setScale(2,
BigDecimal.ROUND_HALF_UP).doubleValue()
+ "" : "0", wf));
wsheet.addCell(new Label(25, i + 2, null != financeDto
.getLastUnanchor() ? new BigDecimal(financeDto
.getLastUnanchor()).setScale(2,
BigDecimal.ROUND_HALF_UP).doubleValue()
+ "" : "0", wf));
wsheet.addCell(new Label(26, i + 2, null != financeDto
.getTotleFee() ? new BigDecimal(financeDto
.getTotleFee()).setScale(2,
BigDecimal.ROUND_HALF_UP).doubleValue()
+ "" : "0", wf));
wsheet.addCell(new Label(27, i + 2, null != financeDto
.getShouldFee() ? new BigDecimal(financeDto
.getShouldFee()).setScale(2,
BigDecimal.ROUND_HALF_UP).doubleValue()
+ "" : "0", wf));
}
}
wbook.write();
wbook.close();
os.close();
res.flushBuffer();
} catch (Exception e) {
e.printStackTrace();
}
}


你可能感兴趣的:(jxl导出excel)