【问题标题】:Can't save .doc as .xml无法将 .doc 保存为 .xml
【发布时间】:2009-10-19 14:29:07
【问题描述】:

我想要实现的是强制 MS Word 在将 .doc 或 .rtf 文件保存为 .xml 时不拆分特定字符串。 例如,现在来自类似:

 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>

如果有任何有助于绕过此问题的想法,我将不胜感激。

【问题讨论】:

  • 您能否更详细地解释第一个表示导致的问题?
  • xml 文件稍后将被专门处理,如果我在这个地方有一个有凝聚力的字符串而不是它的某些部分用可以(并且可能将)在任何文档的编辑期间发生变化。

标签: xml ms-word doc


【解决方案1】:

如果您无法将其直接导出,那么您会想到两个选项:

  1. 使用 VSTO 创建插件 (Link here)

  2. 创建一个XSLT Template 以适当地重新格式化 XML

【讨论】:

    【解决方案2】:

    Word 具有控制 RSID 条目是否与文档一起保存的选项。这是一个隐藏的应用程序选项,只能通过 Word 对象模型访问。

    为了防止生成这些 ID,您可以例如打开宏编辑器(Alt+F11)并在即时窗口中执行以下代码:

    Application.Options.StoreRSIDOnSave = False
    

    如果没有 RSID,所有具有相同格式的文本都将包含在一次运行中(我认为这是您想要的)。

    Word 将 RSID 用于automatically merge documents;它们不包含保存文档布局所需的基本信息,因此保存是可选的(除非您需要能够合并文档)。

    【讨论】:

    • 效果很好,非常感谢。我希望我的同事也会喜欢这个解决方案;)
    • 我已经在 Word 2007 中尝试过。您从可用的 XML 格式中选择了哪种 XML 格式?这应该至少适用于 Word 2003 XML 格式。
    • 还要注意,只有格式相同的文本才会被合并。
    • 我仔细检查了格式,一切都是(并且曾经是)应有的样子。现在我很困惑,因为这一次它适用于两种 XML 格式。我有一个印象,Word 有时会将此选项改回 True,或者至少在第一次时不接受它 - 这甚至可能吗?
    • 您确定您的文档确实被保存了吗? Afaik Word 只会在包含修改的情况下保存您的文档。
    猜你喜欢
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    相关资源
    最近更新 更多