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

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

我试图find一种方法来设置视图模式使用HSSF或XSSF。 在旧的二进制格式,find答案似乎很不幸的是不可能的。 在2007+ OOXML格式差异确实给出了基本的答案,看着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选项来编辑该属性? (或解决问题的唯一办法是将文件解包,编辑并重新打包)

谢谢!

XSSF不直接公开这个,但你可以得到它,如果你想

XSSFSheet对象中,调用getCTWorksheet获取支持该表的低级XML对象。 CTWorksheet提供了一个getSheetViews方法。 你会喜欢想要的东西,如:

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