无法将 .doc 另存为 .xml
我想要实现的是将 .doc 或 .rtf 文件保存为 .xml 时强制 MS Word 不要分割特定字符串。 例如,现在从类似:
Something: ***TABLE_NAME.COLUMN_NAME***
或
Something: AAATABLE_NAME.COLUMN_NAMEBBB
类似的东西我得到:
<w:p wsp:rsidR="00537583" wsp:rsidRDefault="00AF6BDF" wsp:rsidP="00537583">
<w:pPr>
<w:pStyle w:val="Default"/>
<w:jc w:val="both"/>
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
<w:t>Something: AAA</w:t>
</w:r>
<w:r wsp:rsidR="00537583">
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
<w:t>TABLE_NAME.</w:t>
</w:r>
<w:r wsp:rsidR="00537583" wsp:rsidRPr="00537583">
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
<w:t> COLUMN_NAME</w:t>
</w:r>
<w:r wsp:rsidR="00537583">
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
<w:t>BBB</w:t>
</w:r>
</w:p>
我想要得到的是例如:
<w:p wsp:rsidR="00537583" wsp:rsidRDefault="00AF6BDF" wsp:rsidP="00537583">
<w:pPr>
<w:pStyle w:val="Default"/>
<w:jc w:val="both"/>
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
<w:t>Something: AAATABLE_NAME.COLUMN_NAMEBBB</w:t>
</w:r>
</w:p>
我将感激任何有助于绕过这个问题的想法。
What I'd like to achieve is to force MS Word not to split specific strings when saving .doc or .rtf file as .xml.
For example, now from something like:
Something: ***TABLE_NAME.COLUMN_NAME***
or
Something: AAATABLE_NAME.COLUMN_NAMEBBB
or anything similar I get:
<w:p wsp:rsidR="00537583" wsp:rsidRDefault="00AF6BDF" wsp:rsidP="00537583">
<w:pPr>
<w:pStyle w:val="Default"/>
<w:jc w:val="both"/>
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
<w:t>Something: AAA</w:t>
</w:r>
<w:r wsp:rsidR="00537583">
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
<w:t>TABLE_NAME.</w:t>
</w:r>
<w:r wsp:rsidR="00537583" wsp:rsidRPr="00537583">
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
<w:t> COLUMN_NAME</w:t>
</w:r>
<w:r wsp:rsidR="00537583">
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
<w:t>BBB</w:t>
</w:r>
</w:p>
and what I'd like to get is e.g.:
<w:p wsp:rsidR="00537583" wsp:rsidRDefault="00AF6BDF" wsp:rsidP="00537583">
<w:pPr>
<w:pStyle w:val="Default"/>
<w:jc w:val="both"/>
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:sz w:val="23"/>
<w:sz-cs w:val="23"/>
</w:rPr>
<w:t>Something: AAATABLE_NAME.COLUMN_NAMEBBB</w:t>
</w:r>
</w:p>
I'll be grateful for any ideas that will help to bypass this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您无法直接按照需要导出,我会想到两个选项:
使用 VSTO 创建插件 (链接此处)
创建一个XSLT 模板以适当地重新格式化 XML
Two options spring to mind, if you can't get it to export as you want directly:
Create a plugin using VSTO (Link here)
Create an XSLT Template to reformat the XML appropriately
Word 有一个选项可以控制 RSID 条目是否与文档一起保存。这是一个隐藏的应用程序选项,只能通过 Word 对象模型访问。
为了防止生成这些 ID,您可以打开宏编辑器 (Alt+F11) 并在立即窗口中执行以下代码:
如果没有 RSID,则所有具有相同格式的文本将包含在一次运行中(我认为这就是你想要拥有)。
Word 使用 RSID 来 自动合并文档;它们不包含保留文档布局所需的基本信息,因此保存是可选的(除非您需要能够合并文档)。
Word has an option to control whethr RSID entries are saved with a document. This is a a hidden application option only accessible via the Word object model.
To prevent that those ids are generated you can e.g. open the macro editor (Alt+F11) and execute the following code in the immediate window:
Without RSIDs all text having the same formatting will be contained in a single run (I think this is what you want to have).
The RSIDs are used by Word to automatically merge documents; they don't contain essential information needed for preserving a documents layout so saving is optional (unless you need to be able to merge documents).