栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何摆脱“保存更改?” 关于使用Apache POI XSSF创建的xlsx文件的提示

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何摆脱“保存更改?” 关于使用Apache POI XSSF创建的xlsx文件的提示

问题

问题可能出在MS
Excel本身(一旦您确定所有公式都已计算并保存在.xlsx文件中)。根据我的测试,如果Excel发现文件是由较早版本的Excel或其他应用程序最后保存的(点在于版本号不匹配和/或低于当前版本),则Excel将在打开期间重新计算所有公式。
Excel打开文件)以保持良好的兼容性。

(使Excel认为.xlsx文件是由同一Excel版本生成的,以避免重新计算)

Excel从.xlsx存档(.xlsx只是一个压缩的存档)内目录中的

workbook.xml
文件读取所有文件版本控制信息
xl

Apache POI生成的workbook.xml文件如下所示:

<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officedocument/2006/relationships">  <workbookPr date1904="false"/>  <bookViews><workbookView activeTab="0"/></bookViews>  <sheets>    <sheet name="new sheet" r:id="rId3" sheetId="1"/>  </sheets>  <calcPr calcId="0"/></workbook>

Excel 2010生成的文件如下所示:

<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officedocument/2006/relationships">  <fileVersion appName="xl" lastEdited="5" lowestEdited="5" rupBuild="9303"/>  <workbookPr defaultThemeVersion="124226"/>  <bookViews><workbookView xWindow="630" yWindow="510" windowWidth="27495" windowHeight="14505"/></bookViews>  <sheets>    <sheet name="new sheet" sheetId="1" r:id="rId1"/>  </sheets>  <calcPr calcId="145621"/></workbook>

请注意

<fileVersion>
,POI生成文件中的标记完全丢失,而Excel生成文件中的
<calcPr>
标记
calcId
设置为某个实际值。

通过插入相关

<fileVersion>
标签并将其值设置
calcId
为等于或大于我当前版本的Excel
workbook.xml
生成的数字到POI生成的数字,我能够避免Excel 2010自动重新计算公式(以及烦人的“保存更改”对话框)。

有关

workbook.xml
格式的更多信息,请参见MSDN Open XML
SDK文档。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454918.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号