java导出excel样式_java 导出自定义样式excel

由于项目需要 要求导出一个这样的表格

bbe15ef40d68d49958aa06feee99a08f.png

然而 正常导出的表格都是这样婶儿地

84af8da0368ea0183b68971a781b6b0d.png

这种格式网上demo有很多就不详细说了 ,主要说说上面三行是怎么画的。

第一行大标题,是9行合并成的一行,而且字体大小需要单独设置

HSSFSheet sheet;

HSSFCell cell;

response.setContentType("application/octet-stream");

response.setHeader("Content-Disposition", "attachment;filename="+filename+".xls");

sheet = workbook.createSheet("物料调拨单");

//第一行大标题

HSSFCellStyle tStyle = workbook.createCellStyle();

tStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);

tStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

HSSFFont tFont = workbook.createFont();//标题字体

tFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

tFont.setFontHeightInPoints((short)15);

tStyle.setFont(tFont);

short twidth = 15,theight=25*20;

sheet.setDefaultColumnWidth(twidth);

cell = getCell(sheet,0,0);

cell.setCellStyle(tStyle);

setText(cell,"物料调拨单");

sheet.getRow(0).setHeight(theight);

sheet.addMergedRegion(new CellRangeAddress(0,0,0,8));

sheet.addMergedRegion(new CellRangeAddress(0,0,0,8)); 这个就是合并单元格方法,需要传入4个int行的参数,

分别是 起始行,结束行,起始列,结束列。因为我们需要在第一行显示1个9个格的标题所以行就是从0到0,列是从0到8

同理: 下面2行可以这么设置合并

sheet.addMergedRegion(new CellRangeAddress(1, 1, 1, 2));

sheet.addMergedRegion(new CellRangeAddress(2, 2, 1, 2));

sheet.addMergedRegion(new CellRangeAddress(1, 1, 4, 5));

sheet.addMergedRegion(new CellRangeAddress(2, 2, 4, 5));

sheet.addMergedRegion(new CellRangeAddress(1, 1, 7, 8));

sheet.addMergedRegion(new CellRangeAddress(2, 2, 7, 8));

由于合并单元格,值取的是第一个单元格的值,所以后面的单元格可以直接赋值为空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值