以编程方式将带有表结构的word文档转换为XML的最佳方法是什么

时间:2009-03-30 20:30:06

标签: xml ms-word data-conversion

所以,我有这个word文档有一大堆表,其中一些很长。在某些情况下,它涵盖了许多页面。我需要以编程方式将此事物转换为XML。

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

我应该注意这是一个用VB.Net 1.1编写的旧应用程序的附加组件(cue frowny face):(。但是,我正在辩论只是在C#3.5中编写一个单独的命令行工具,如果那样的话'让它变得更容易。看起来像C#有一些Word互操作的东西,我怀疑在1.1框架中,但我没有调查过多。

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

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

更新的 好的,所以这里有一个我需要做的例子。

我有一个看起来像这样的文字......

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. 

所以,这里有它的名称和供应商的表(在这种情况下是协议和鸟类)。作为一个例子,它只有一个字段。有效值/比较可以用逗号分隔多个内容,其中每个内容都由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中的版本以及上次修改日期和版本日期。这些事情可能会在以后担心,也许会手动添加。

1 个答案:

答案 0 :(得分:0)

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

相关问题