Apache POI Excel:页面设置与页边距alignment

我有用于Excel文件操作的Apache POI API。 Excel文件是从Jasper Report生成的。 从贾斯珀报告生成Excel是好的。 我想要的是贾斯珀报告不支持的一些额外的东西。 就像添加打印页面设置 – 页眉和页脚的东西。 我忽略了每个Excel页面上的边界。 但是,当我添加页眉和页脚,他们打印有一定的余地。 然后观察MS Excel上页面设置页上有一个checkbox。

在这里输入图像说明

此处Align with page marginscheckbox控制页眉和Align with page margins 。 如果这个checkbox被选中,那么它将和excel页面有相同的边距。

问题:如何从Apache POI控制此checkbox字段?

这个function还没有浮出水面。 但是,在XSSF文件格式中,您可以使用CT类来获取它。 我会从这里开始:

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

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