2009-03-30 10 views
0

Also habe ich dieses Word-Dokument, das eine ganze Reihe von Tabellen hat, von denen einige ziemlich lang sind. Es umfasst in manchen Fällen viele Seiten. Ich muss diese Sache programmatisch in XML umwandeln.Was ist der beste Weg, um ein Word-Dokument mit einer Tabellenstruktur in XML programmatisch zu konvertieren

Ich wurde zunächst gesagt, wir könnten einfach einfügen in Excel und speichern Sie es als CSV, dann könnte ich von dort konvertieren, die ziemlich einfach wäre. Aufgrund der Formatierung einiger Felder müsste nach dem Kopieren nach Excel jedoch eine Menge zusätzlicher Manipulation an der Tabelle vorgenommen werden, damit sie richtig aussieht und die CSV korrekt ausgegeben wird.

Ich sollte beachten, dass dies ein Add-on für eine alte Anwendung in VB.Net 1.1 geschrieben ist (cue frowny Gesicht) :(. Allerdings debattiere ich nur ein separates Befehlszeilenprogramm in C# 3.5, wenn das Ich werde es einfacher machen. Scheint so, als ob C# ein Word-Interop-Zeug hat, von dem ich bezweifele, dass es im 1.1-Framework ist. Aber ich habe das nicht zu weit untersucht.

Also, ich suche nur den besten/schnellsten Weg Dies kann erreicht werden.Es spielt keine Rolle, wie es erreicht wird, solange es erreicht wird, und es wird programmatisch durchgeführt.Einige der Schritte können manuell durchgeführt werden, wenn sie nicht zu hart sind.Wie wenn man sie in ein anderes Format bringt Zuerst würde eine Reihe von Codierung sparen und ist nicht zu schwierig, das wäre in Ordnung.

Hat jemand so etwas schon einmal gemacht? Irgendwelche Ideen?

Update Ok, also hier ist ein Beispiel für genau das, was ich tun müsste.

Ich habe ein Wort doc, die etwa wie folgt aussieht ...

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. 

So gibt es die Tabelle mit ihm Namen und Anbieter (Protokoll und Vögel in diesem Fall) ist. Zum Beispiel hat es nur ein Feld. Gültige Werte/Vergleiche können mehrere durch Kommas getrennte Dinge enthalten, wobei jedes Ding von Wert-Tags innerhalb der XML eingeschlossen wird.

Nun, was ich im Grunde tun müssen, ist, dass auf diese XML zu konvertieren zu bekommen ...

<?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> 

Es wird immer eine Basistabelle und eine Bühne Tisch, wo Basistabelle ist der gleiche Name wie alles, was folgt der Doppelpunkt am Anfang des (PROTOKOLL: VÖGEL, also wären es VÖGEL) und die Stufentabelle ist immer STAGE_ dann was dem Doppelpunkt folgt. Sie werden auch die Version und das Datum der letzten Änderung und Version in der XML-Datei bemerken. Diese Dinge können später besorgt und möglicherweise manuell hinzugefügt werden.

+0

Was sind die Anforderungen für Ihr XML? Wenn Sie nur XML benötigen, können Sie das Dokument einfach als OpenXML speichern, aber ich denke, Sie wollen etwas bestimmtes? Wie sollte es aussehen? –

+0

Ich gehe davon aus, dass das OpenXML-Analog mit Word das neue XML-Format von Word ist? Ansonsten bin ich mir nicht sicher, was du mit OpenXML meinst.Ich weiß, was Sie für XML bekommen, was von Word generiert wird, ist ein Durcheinander, soweit das menschliche Auge es beurteilen kann. Außerdem, genau das, was ich zu meinem Beitrag möchte. – Carter

Antwort

0

Sie sollten erkennen, dass es so etwas wie ein MS Word Dokument nicht gibt. Es gibt zahlreiche Formate und einige frühe Formate verdienen den Namen nicht, aber sie werden besser als Speicherabzüge von komprimiertem Hacky-Text beschrieben. Sie brauchen XML nicht wirklich, das ist ein späteres Problem. Sie müssen die Kontrolle über die Daten im Dokument übernehmen. Wenn das nicht eines der neuesten, etwas dokumentierten Formate ist, haben Sie nur eine Option: hacken Sie es aus. Schreiben Sie ein Programm, um das Dokument zu manipulieren, bis Sie das bekommen, was Sie wollen. Die einzige, die MS-Word-Formate kennt, ist MS-Word selbst. Wenn Sie sie also davon überzeugen können, den Inhalt in einem mehr oder weniger definierten Format wie RTF zu speichern, haben Sie einen besseren Ausgangspunkt.