python-创建类似于MS Office文档的文件格式以公开文档属性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-创建类似于MS Office文档的文件格式以公开文档属性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2494字,纯文字阅读大概需要4分钟。
内容图文
![python-创建类似于MS Office文档的文件格式以公开文档属性](/upload/InfoBanner/zyjiaocheng/651/e9c327837e1c467dafb5e3c00df46267.jpg)
我们应用程序的“文档”是单个二进制文件.
我们的客户询问我们是否可以将类似于MS Office的文档属性添加到我们的文档文件中,以使用户更易于管理.易于管理,是指Windows资源管理器能够在工具提示中显示常见文档属性.
我的研究似乎表明我们应该考虑将OLE结构化存储作为数据文件的基础.我已经看到了该技术的另一种描述,即MS结构化存储,OLE 2复合文档格式和Windows文件元数据.
我对使用OLE结构化存储的担心是,似乎Office 2007或2010不再使用此文件格式,并且OLE结构化存储要求注册许多客户无法使用的DSOFILE.DLL ActiveX组件,因为他们在锁定的工作站上运行我们的软件,在这些工作站上用户没有安装软件的管理员权限. (我们的应用程序软件是纯XCOPY部署).
希望听到关于我们的选择的想法.
谢谢,
马尔科姆
解决方法:
我很确定您最好的答案是使用OLE复合文档.
Microsoft可能已停止使用此文件,但这是因为它们已使用XML文件格式.除非您愿意将当前的文件格式转换为XML,否则我认为标签的新标准对您来说不会很有趣.
您可以使您的应用程序保存两个文件,XML一个仅用于标记,而二进制数据一个,但这对您的用户来说意味着痛苦. OLE复合文档格式的全部要点是允许将多个“文件”绑定到一个文件中.
另外,如果现代Windows不支持内置的OLE复合文档,我会感到非常惊讶.我可以肯定的是,早在十年前的Microsoft Word 6.0中,文档就以这种OLE复合文档格式保存了. .为什么Windows XP或更高版本需要一个额外的.DLL文件才能解析出这些标记?
使用OLE复合文档格式的最好之处在于,无论哪种情况,用户标签都将随文件一起使用:如果用户将文件写入文件服务器,如果用户将文件放在电子邮件中,或者如果用户刻录,将该文件保存到CD中. (我写的第一个答案是删除的,很糟糕;即使它起作用了,它也会将用户标签放在文件外,我考虑得越多,我对这种想法的满意度就越低.)
因此,我建议您尝试创建OLE复合文档,然后在Windows XP的标准安装中的Windows资源管理器中查看该文件.查看是否可以看到标签而无需下载和安装ActiveX .DLL.我很确定它会起作用. (但是我真的不再做Windows了,所以我不能方便地为您测试一下.)
编辑:好的,我刚刚做了测试.我正在工作,并且这里有一台Windows计算机.我使用Word 2007制作文档,然后将文档另存为Word 97格式.我在Windows资源管理器中查看了文档属性.作者名称在标签中可见.我在“注释”中添加了文本,然后在Word 2007中打开了文件.然后,我可以查看注释(单击左上角的“办公室”图标圈,选择“准备”,选择“属性”).
因此,我的理论有一些证据可以证明这一点:我不必安装任何特殊软件,我的Windows资源管理器仅使用OLE复合文档格式带有标签的Word文件. (可能是Microsoft Office安装了一些特殊的.DLL以在Windows资源管理器中使用这些标记;我确实在该计算机上安装了Microsoft Office2007.但是您的客户也可能也安装了Microsoft Office,因此即使是这样,我仍然认为这是最好的解决方案.)
我建议您在Google中搜索“ OLE复合文档格式”,并了解如何编写此格式.我在此处找到了如何读取标签的示例:http://support.microsoft.com/kb/186898
内容总结
以上是互联网集市为您收集整理的python-创建类似于MS Office文档的文件格式以公开文档属性全部内容,希望文章能够帮你解决python-创建类似于MS Office文档的文件格式以公开文档属性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。