【问题标题】:Apache POI Excel: Page setup Align with page marginsApache POI Excel:页面设置与页边距对齐
【发布时间】:2017-03-15 17:59:02
【问题描述】:

我有用于 Excel 文件操作的 Apache POI API。 Excel 文件是从 Jasper 报告生成的。从 Jasper 报告生成的 Excel 很好。我想要的是 Jasper Report 不支持的一些额外的东西。就像添加打印页面设置 - 页眉和页脚一样。我忽略了每个 Excel 页面上的边框。但是当我添加页眉和页脚时,它们会打印一些边距。然后观察到 MS Excel 的页面设置页面上有一个复选框。

这里Align with page margins 复选框控制页眉和页脚的边距。如果选中此复选框,则它将与 Excel 页面具有相同的边距。

问题:如何从 Apache POI 控制此复选框字段?

【问题讨论】:

    标签: java excel apache-poi


    【解决方案1】:

    此功能尚未浮出水面。但是,在 XSSF 文件格式中,您可以使用 CT 类来处理它。我将从这里开始:

    Sheet sh = wb.createSheet();
    HeaderFooter header = sh.getHeader();
    XSSFHeaderFooter xhd = (XSSFHeaderFooter) header;
    CTHeaderFooter ctHd = xhd.getHeaderFooter();
    ctHd.setAlignWithMargins(true);
    

    这仅适用于 XLSX 文件,我不知道如何处理 XLS 文件。注意我从通用工作簿、工作表和页眉开始。但随后将其转换为 XSSF Header 以获取底层 CT 类。您可以使用 XSSF 类编写整个应用程序,而不必XSSFHeaderFooter xhd = (XSSFHeaderFooter) header;

    【讨论】:

    • 请建议一项功能增强/为此打开一个带有漂亮 XSSF 页眉/页脚包装器的拉取请求! :)
    • 我觉得有问题。 Sheet.getHeader() 不返回页眉页脚。这是javadoc链接。 poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/…
    • 它返回Header,这是一个HeaderFooter。我需要 HeaderFooter 转换为 XSSFHeaderFooter 这个位。你尝试过但失败了吗?发生了什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多