java POI导出excel画斜线

想要实现这样的效果

在这里插入图片描述

1、HSSF画斜线(wps可打开,office老版本可打开)

Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("sheetName");
sheet.setColumnWidth(0, 5600);
Row row1 = sheet.createRow(0);
row1.setHeight((short) 800);
//画线(由左上到右下的斜线)  在A1的第一个cell(单位  分类)加入一条对角线
Row row = sheet.getRow(0);
Cell cell0 = row.createCell(0);
cell0.setCellValue("xxxx         xxxx");
HSSFPatriarch drawingPatriarch = (HSSFPatriarch) sheet.createDrawingPatriarch();
HSSFClientAnchor a = new HSSFClientAnchor(0, 0, 1023, 255, (short) 0, 0, (short) 0, 0);
HSSFSimpleShape simpleShape = drawingPatriarch.createSimpleShape(a);
simpleShape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);
simpleShape.setLineStyle(HSSFSimpleShape.LINESTYLE_SOLID);
//填充你的数据
//......
//导出
ByteArrayOutputStream os = new ByteArrayOutputStream();
workbook.write(os);
return os;

2、XSSF画斜线(wps可打开,office可打开,且画出来效果更好)

XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("sheetName");
sheet.setColumnWidth(0, 6500);
Row row1 = sheet.createRow(0);
row1.setHeight((short) 800);
//画线(由左上到右下的斜线)  在A1的第一个cell(单位  分类)加入一条对角线
Row row = sheet.getRow(0);
Cell cell0 = row.createCell(0);
cell0.setCellValue("xxxx         xxxx");
CreationHelper helper = workbook.getCreationHelper();
XSSFDrawing xssfDrawing = sheet.createDrawingPatriarch();
ClientAnchor anchor = helper.createClientAnchor();
//设置斜线的开始位置,我这里是从第0行到第1行,从第0列到第1列
anchor.setCol1(0);
anchor.setCol2(1);
anchor.setRow1(0);
anchor.setRow2(1);
XSSFSimpleShape simpleShape = xssfDrawing.createSimpleShape((XSSFClientAnchor) anchor);
//设置形状类型未线型
simpleShape.setShapeType(ShapeTypes.LINE);
//设置线宽
simpleShape.setLineWidth(0.5);
//设置线的风格
simpleShape.setLineStyle(0);
//设置线的颜色
simpleShape.setLineStyleColor(0,0,0);
//填充你的数据
//......
//导出
ByteArrayOutputStream os = new ByteArrayOutputStream();
workbook.write(os);
return os;

以上是两种方式,供参考。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值