使用apache poi在excel文件中设置页面视图模式

时间:2011-10-22 16:42:02

标签: java excel apache-poi xssf hssf

Excel具有不同的查看工作表的模式:普通,页面布局,分页预览。 (在excel 2010中:在视图选项卡中)。视图模式单独保存在工作簿中的每个工作表中,并在再次打开时恢复。

我试图找到一种使用HSSF或XSSF设置视图模式的方法。 在旧的二进制格式中,遗憾的是找到答案似乎是不可能的。 在2007++ OOXML格式中,diffing确实提供了基本答案,查看xl / worksheets / sheet1.xml 在普通视图中:

<sheetViews>
 <sheetView rightToLeft="1" tabSelected="1" zoomScaleNormal="100" workbookViewId="0">
</sheetViews>

在页面布局视图中:

<sheetViews>
 <sheetView rightToLeft="1" tabSelected="1" view="pageLayout" zoomScaleNormal="100" workbookViewId="0"/>
</sheetViews>

这是每张表中的第二个标签。是否有任何XSSF API选项来编辑该属性? (或问题的唯一解决方案是解压缩文件,编辑和重新打包)

谢谢!

1 个答案:

答案 0 :(得分:2)

XSSF不直接公开,但如果你想要

,你可以得到它

XSSFSheet对象中,调用getCTWorksheet以获取支持工作表的低级XML对象。 CTWorksheet提供了getSheetViews方法。你想要的东西如下:

 CTSheetView view = sheet.getCTWorksheet().getSheetViews().getSheetViewArray(0);
 view.setView(STSheetViewType.PAGE_LAYOUT);