Wie liest MS-Word-Absatz-und-Tabelle-Inhalt Zeile für Zeile
Ich lese word-Dokument in C# (3.5) mit Microsoft.Office.Interop.Word
. Lesen Sie Zeile für Zeile, splitting-Zeile in ein array [], und die Verarbeitung jedes Wort der Zeile und basiert auf einigen business-Logik einbauen, einige Worte und nach dem Austausch der Wörter, die Sie ersetzen die komplette Zeile mit den konvertierten Linie.
Bis jetzt Jedes Ding ist in Ordnung.
Nun habe ich einige word-Dokumente, diese sind mit Absatz und Tabellen. Ich Lesen möchte jede Spalte der Tabelle einzeln aus, und ersetzen Sie den Inhalt der Spalte in der bestimmten Spalte.
Update
Verwendung Der Office-Automatisierung
1. Opening word file.
2. Moving cursor to top of the document
3. Selecting first line using (`wordApp.Selection.endKey`) and processing all words
4. After processing the words replacing the selected line with the processed line.
5. Using wordApp.Selection.MoveDown(ref lineCount, ref countPage, ref MISSING);
moving next line processed further.
Problem:
1. Beim Lesen der Tabelle liest er nur die erste Spalte, wenn Sie wordApp.Selection.endKey
Möchte ich verarbeiten alle Spaltendaten.
Gibt es eine Möglichkeit zu erkennen, ob der Inhalt von Absatz oder Tabelle?
Zusätzlich zu der Antwort, verbunden durch @Gicht, die Tisch-Oberfläche von Word interop enthält eine Spalten-Eigenschaft, die ist sehr ähnlich wie die Rows-Eigenschaft verwendet in diesem link
InformationsquelleAutor Arun Singh | 2012-06-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mittels Auswahl zum Scannen eines Dokuments sollte ziemlich teuer sein in der Leistung.
Ich würde vorschlagen, den folgenden code:
InformationsquelleAutor user2006903
Fand ich einen workaround für das gleiche.
Ansatz ist unten aufgeführt.
1. Öffnen Sie das Word-Dokument mit
WordApp.Documents.Open()
2. Mit
Selection.MoveDown
um das Dokument zu Durchlaufen Zeile für Zeile3. Überspringen Sie den Inhalt der Tabellenzellen
4. Bei der letzten Bearbeitung nur Tabellen des Dokuments
InformationsquelleAutor Arun Singh