【问题标题】:What is the best way to programatically convert a word document with a table structure to XML以编程方式将具有表结构的 Word 文档转换为 XML 的最佳方法是什么
【发布时间】:2010-10-16 11:31:36
【问题描述】:

所以,我有一个包含一大堆表格的 word 文档,其中一些表格很长。在某些情况下,它跨越许多页面。我需要以编程方式将此东西转换为 XML。

我最初被告知我们可以将粘贴复制到 Excel 并将其保存为 CSV,然后我可以从那里进行转换,这将非常容易。但是,由于某些字段的格式,在复制到 Excel 后需要对电子表格进行大量额外操作,以使其看起来正确并正确输出 CSV。

我应该注意到,这是一个用 VB.Net 1.1 编写的旧应用程序的附加组件(提示皱眉脸):(。但是,我正在讨论是否只是在 C# 3.5 中编写一个单独的命令行工具'会让它更容易。似乎 C# 有一些我怀疑是在 1.1 框架中的 Word 互操作的东西,但我还没有调查太远。

所以,我只是在寻找可以实现这一目标的最佳/最快方式。只要实现并且以编程方式完成,它是如何实现的并不重要。如果不是太难,一些步骤可以手动完成。就像如果先将其转换为其他格式会节省大量编码并且不会太难那样就可以了。

以前有人做过这样的事吗?有任何想法吗?

更新 好的,下面是我需要做的一个示例。

我有一个看起来像这样的 word doc...

PROTOCOL:  BIRDS           

Field Name      Data Type      Required      Length      Total Digits      Fraction Digits      ValidValues/Comparison      Description
OBSERVATION_ID  Text           Yes           16          n/a               n/a                                              Unique observation identification.  Primary key. 

所以,有一个表格,上面有它的名称和供应商(在本例中是 Protocol 和 Birds)。例如,它只有一个字段。有效值/比较可以有多个用逗号分隔的内容,其中每个内容都由 XML 中的值标签括起来。

现在我基本上需要做的是把它转换成这个 XML...

<?xml version="1.0" encoding="utf-8"?>
<Formats xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="Formats.xsd">
  <VendorFormats Vendor="PROTOCOL" LastModified="2005-9-13">
    <Format Name="BIRDS" Version="3" VersionDate="2005-9-10">
      <BaseTable>BIRDS</BaseTable>
      <StageTable>STAGE_BIRDS</StageTable>
      <Fields>
        <Text Name="OBSERVATION_ID" Required="Y">
          <NullValue />
          <Description>Unique observation identification.  Primary key.</Description>
          <Length>16</Length>
        </Text>
      </Fields>
    </Format>
   </VendorFormats>
 </Formats>

总会有一个基表和一个阶段表,其中基表与冒号开头的任何名称相同(PROTOCOL:BIRDS,所以它应该是 BIRDS),阶段表总是 STAGE_ 然后冒号后面是什么。您还会注意到 XML 中的版本、最后修改日期和版本日期。这些事情可以稍后再考虑,也许是手动添加的。

【问题讨论】:

  • 对您的 XML 有什么要求?如果您需要的只是 XML,您可以简单地将文档保存为 OpenXML,但我想您想要特定的东西?它应该是什么样子?
  • 我假设与 Word 类似的 OpenXML 是 Word 的新 XML 格式的东西?否则,我不确定您所说的 OpenXML 是什么意思。我知道你从 Word 生成的 XML 中得到的东西,就肉眼所见而言是一团糟。另外,在我的帖子中添加了我想要的内容。

标签: xml ms-word data-conversion


【解决方案1】:

您应该意识到没有 MS Word 文档之类的东西。有许多格式,一些早期的格式不值得命名,但更好地描述为 hacky 压缩文本的内存转储。 您实际上并不需要 XML,这是以后的问题。您必须控制文档中的数据。除非那是最新的、有些记录的格式之一,否则您只有一个选择:破解它。编写一个程序来操作文档,直到你得到你想要的。 唯一知道 MS-Word 格式的人是 MS-Word 本人。因此,如果您能说服她将内容转储为或多或少定义的格式(如 RTF),那么您就有了更好的起点。

【讨论】:

    猜你喜欢
    • 2015-02-28
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多