如何使用Apache poi在excel中沿对角方式删除单元格?
我想得到这样的东西:
我试过了:
cell.getCellStyle().setFillPattern(CellStyle.THIN_BACKWARD_DIAG)
然后单元格有许多对角线而不是从右上角到左下角的一条。
修改 这就是我创建工作簿的方式:
Workbook workbook = new SXSSFWorkbook(SXSSFWorkbook.DEFAULT_WINDOW_SIZE);
Sheet sheet = workbook.createSheet("Test");
然后创建列和行,我没有看到任何特殊要显示。
知道我该怎么办?
答案 0 :(得分:2)
对不起我之前的回答,目前apache poi中没有对角边框,但我们可以编写自己的自定义方法。您可以使用以下方法在单元格中添加对角线边框。
public static void setDiagonal(StylesTable stylesSource, CTXf cellXtraFormating, ThemesTable theme) {
CTBorder ct = CTBorder.Factory.newInstance();
CTBorderPr pr = ct.addNewDiagonal();
ct.setDiagonalUp(true);
pr.setStyle(STBorderStyle.Enum.forInt(BorderFormatting.BORDER_THIN + 1));
int idx = stylesSource.putBorder(new XSSFCellBorder(ct, theme));
cellXtraFormating.setBorderId(idx);
cellXtraFormating.setApplyBorder(true);
}
在你的班级中调用上面的方法,就像这样
CellStyle cs = workbook.createCellStyle();
StylesTable styleSource = ((XSSFWorkbook) workbook).getStylesSource();
ThemesTable theme = styleSource.getTheme();
CTXf cellXtraFormating = ((XSSFCellStyle) cs).getCoreXf();
-------your custom code---------
setDiagonal(styleSource, cellXtraFormating, theme);
cell.setCellStyle(cs);
我希望这能回答你的问题