Apache poi cell对角线删除线

时间:2018-02-23 08:57:36

标签: java excel apache-poi export-to-excel

如何使用Apache poi在excel中沿对角方式删除单元格?

我想得到这样的东西:

enter image description here

我试过了:

cell.getCellStyle().setFillPattern(CellStyle.THIN_BACKWARD_DIAG)

然后单元格有许多对角线而不是从右上角到左下角的一条。

修改 这就是我创建工作簿的方式:

Workbook workbook = new SXSSFWorkbook(SXSSFWorkbook.DEFAULT_WINDOW_SIZE);
Sheet sheet = workbook.createSheet("Test");

然后创建列和行,我没有看到任何特殊要显示。

知道我该怎么办?

1 个答案:

答案 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);

我希望这能回答你的问题

enter image description here