Apache poi - 打印布局,同一张表中的多个打印区域

Var*_*gan 2 java apache-poi

我正在尝试开发一个复杂的报告,我需要为excel文件设置打印区域.我必须将xls文件分成3部分,但如果我执行setPrintArea(..),新区域会订阅旧的,结果是我在打印预览中只有最后一页.如何设置多个打印区域?这是代码:

protected void createCustomerSheet(String label) {
    createSheet(label);
    getCurrentSheet().getPrintSetup().setPaperSize(PrintSetup.A4_PAPERSIZE);
    getCurrentSheet().getPrintSetup().setFitHeight((short)1);
    getCurrentSheet().getPrintSetup().setFitWidth((short)1);
    getCurrentSheet().setAutobreaks(true);
    getCurrentSheet().setFitToPage(true);
}
Run Code Online (Sandbox Code Playgroud)

然后我打了三次电话

 wb.setPrintArea(activeSheetIndex, startColumn, endColumn, startRow, endRow);
Run Code Online (Sandbox Code Playgroud)

我也尝试添加break行,但它不起作用..

有任何想法吗?

rge*_*man 6

Excel仅为电子表格维护一个打印区域.因此,Apache POI的Excel API提供了设置一个打印区域的功能.

听起来您可能正在尝试定义报告的不同页面.如果是这样,您需要在每个工作表中设置要完成此操作的行和/或列分隔符.使用Sheet的以下方法,假设sheet是您的Sheet实例:

sheet.setAutobreaks(false);
sheet.setRowBreak(rowIndex);
sheet.setColumnBreak(columnIndex);
Run Code Online (Sandbox Code Playgroud)

您可以多次调用最后两种方法中的每一种来建立多个中断.