是否可以添加(通过MS Word对象模型?或通过编辑文件)一些自定义数据(可能是另一个文件?)
在MS Word中打开,更改和保存文档后,是否会保留该数据?
(我需要在某些报告导出期间在docx中放置一些跟踪数据,导入期间将再次使用自定义数据)
答案 0 :(得分:7)
是。这是相当简单的,但据我所知,没有记录(完全或非常好)。假设您要将 .ini 文件添加到您的Office文档(.docx,.xslx,.pptx)以随文档“随身携带”(即您发送 .docx 通过电子邮件发送给某人,并希望您添加 yourdoc 。 / strong>即使打开DOCX的人进行了一些更改,然后将其保存并发回给您。
<Type/>
根目录下方
元素,添加<Default
Extension="ini"
ContentType="custom/ini"/>
(注意 -
对于另一个文件,只需确保
extention匹配你的文件
要添加和属性
Extention
与之匹配。为了
ContentType
属性,即可
什么都没有。)<Relationships/>
下添加
类似于<Relationship
Id="rd1"
Type="http://schemas.microsoft.com/office/2007/relationships/ini"
Target="abcpy.ini" />
的地方
属性Id
是Type
中的唯一名称(最好坚持使用rID X 或类似名称),Type
反映了一个URI(属于
几乎任何事情)和Target
是
你的文件的相对路径
添加。我将 abcpy.ini 添加到了
/ word 文件夹中的相同内容
root为 document.xml ,所以我的
相对路径只是文件名。
我把它添加到一个文件夹下
被称为 myIniFiles 的 / word ,
Target
会是。{1}}
的 myIniFiles / abcpy.ini 强> 如果您拥有Open XML Package Editor(VS {2008 {2}的一部分或VS 2010最近发布的VSTO Power Tools),您可以使用VS为您完成部分工作,但它本质上是相同。不同的术语,如Target
等于Name
等等。
请注意,这不是某种黑客行为。 Microsoft在Office 2010中使用这种相同的技术,用于使用新的“艺术效果”修改的图像 - 原始图像文件移植到stand-alone类型,修改后的图像保存为png或jpg(这些是那些在客户端中显示)。 hdphoto(带有.wdp
扩展名)随文档一起移动,但实际上从未在Word,PowerPoint等中显示。
答案 1 :(得分:3)
是的,这是可能的。 Word具有允许您将任意XML文档嵌入Word文档的功能。此功能称为自定义XML 。
编辑文档时保留嵌入文档,也可以从文档中访问嵌入文档,可以使用VBA以编程方式访问,也可以使用Word 2007中引入的内容控件。
请注意,Word要求嵌入内容为XML,但这并不限制您使用纯XML数据,因为您可以使用base64编码将二进制内容嵌入到XML中。
MSDN在C#中有一个示例,向您展示如何将自定义XML部件添加到.docx文件中:
<强> How to: Add Custom XML Parts to Documents Without Starting Microsoft Office 强>
答案 2 :(得分:2)
答案 3 :(得分:1)
不,如果您向此zip文件添加任何内容,Word将开始抱怨文件损坏。 但是不要重新发明轮子。 Word文档可以具有多个不同的文档属性。只是使用它。 http://office.microsoft.com/en-gb/word-help/add-property-information-to-a-document-HA010163766.aspx
答案 4 :(得分:1)
感谢您的回复。 我使用自定义属性将一些UserID数据添加到生成的文档中,它足以“跟踪”文档并能够在以后导入它。