使用 apache poi 在 excel 文件中设置页面查看模式
Excel 有不同的查看工作表的模式:正常、页面布局、分页预览。 (在 Excel 2010 中:在视图选项卡中)。工作簿中每个工作表的查看模式单独保存,并在再次打开时恢复。
我正在尝试找到一种使用 HSSF 或 XSSF 设置视图模式的方法。 不幸的是,在旧的二进制格式中,找到答案似乎是不可能的。 在 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 选项可以编辑该属性? (或者问题的唯一解决方案是解压文件,编辑它并重新打包)
谢谢!
Excel has different modes for viewing a sheet: Normal, Page Layout, Page Break Preview. (In excel 2010: in the view tab). The view mode is saved seperately for each sheet in a workbook and is restored when opened again.
I am trying to find a way to set a view mode using Either HSSF or XSSF.
In the old binary format, finding the answer seems quite impossible unfortunately.
In 2007+ OOXML format diffing does give the basic answer, looking at xl/worksheets/sheet1.xml
In normal view:
<sheetViews>
<sheetView rightToLeft="1" tabSelected="1" zoomScaleNormal="100" workbookViewId="0">
</sheetViews>
In page layout view:
<sheetViews>
<sheetView rightToLeft="1" tabSelected="1" view="pageLayout" zoomScaleNormal="100" workbookViewId="0"/>
</sheetViews>
That is the second tag in each sheet. Is there any XSSF API option to edit that attribute? (or the only solution to the problem would be unpacking the file, editing it and repacking)
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
XSSF 不会直接公开这一点,但如果您想要的话
,您可以从
XSSFSheet
对象中调用getCTWorksheet
来获取支持工作表的低级 XML 对象。 CTWorksheet 提供了 getSheetViews 方法。你会想要这样的东西:XSSF doesn't expose this directly, but you can get at it if you want
From the
XSSFSheet
object, callgetCTWorksheet
to get the low level XML object backing the sheet. CTWorksheet provides agetSheetViews
method. You'll like want something like: