需求背景:
在使用Apache POI进行表格数据导出时,某些单元格需要画上斜线。
1.需求背景
解决方法:
国内相关文章较少,于是在国外技术网站上找了一圈,最终在StackOverFlow上找到了方法,原文中的方法画了一条斜线和箭头。
代码:
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("Sheet1");
CreationHelper helper = wb.getCreationHelper();
XSSFDrawing drawing = sheet.createDrawingPatriarch();
ClientAnchor anchor = helper.createClientAnchor();
// 设置斜线的开始位置
anchor.setCol1(2);
anchor.setRow1(2);
// 设置斜线的结束位置
anchor.setCol2(3);
anchor.setRow2(3);
XSSFSimpleShape shape = drawing.createSimpleShape((XSSFClientAnchor) anchor);
// 设置形状类型为线型
shape.setShapeType(ShapeTypes.LINE);
// 设置线宽
shape.setLineWidth(0.5);
// 设置线的风格
shape.setLineStyle(0);
// 设置线的颜色
shape.setLineStyleColor(0, 0, 0);
File file = new File("C:\\Users\\admin\\Desktop", "Test.xlsx");
try (FileOutputStream fis = new FileOutputStream(file);) {
wb.write(fis);
wb.close();
} catch (Exception e) {
e.printStackTrace();
}
实现效果:
希望对大家有所帮助!
2.实现效果