Ersetzen-Feld im Header&Fußzeile in Word Mit Interop

Wie ersetzen "- FELD" in der Kopfzeile/Fußzeile?

Ex: Word-doc-Datei mit dem Datei-Namen & Datum. statt der Datei-Pfad - [FilePath] statt C://Documents/Location/Filename.doc ,[Datum] statt 18/07/2013.

Kann ich ersetzen text mit range.

foreach (Microsoft.Office.Interop.Word.Section section in wordDocument.Sections)
{
   section.Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Text.Replace(sourceDocPath, "[File Path]");

   section.Footers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Text.Replace(sourceDocPath, "[File Path]"); 
}

Dies funktioniert gut für Den Dateinamen, jedoch für das Datum, es ist nicht möglich zu erraten, um das format zu ersetzen. Das ist alles, weil ich bin nicht in der Lage zu fangen die genauen Feld-info ersetzen.

Den code unten auch kann ich nicht verwenden

wordApp.Selection.Find.Execute(ref textToReplace, ref typeMissing, 
        ref typeMissing, ref typeMissing, ref typeMissing, ref typeMissing, 
        ref typeMissing, ref typeMissing, ref typeMissing, ref typeMissing, 
        ref replaceTextWith, ref replaceAll, ref typeMissing, ref typeMissing, 
        ref typeMissing, ref typeMissing);

Einzige Möglichkeit, die ich sehe, wie der jetzt ist, behandeln alle möglichen Datumsformate und ersetzen,aber das scheint nicht wie ein guter Ansatz für mich.

Update als pro den Kommentar gegeben mit Storyrange.

Nicht geben Sie mir die genauen Feld-Informationen Aussage [DATUM].Wenn ich Durchlaufen story-Reihe die Art info, die ich bekommen hab wdstorytype, die über den Abschnitt Informationen, nt über das Feld Informationen.

foreach (Microsoft.Office.Interop.Word.Range tmpRange in wordDocument.StoryRanges)
                    {
                        string strtype = tmpRange.StoryType.ToString();
                        tmpRange.Find.Text = "18/07/2013";
                        tmpRange.Find.Replacement.Text = "";
                        tmpRange.Find.Replacement.ParagraphFormat.Alignment =
                            Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;

                        tmpRange.Find.Wrap = Microsoft.Office.Interop.Word.WdFindWrap.wdFindContinue;
                        object replaceAll = Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll;

                        tmpRange.Find.Execute(ref missing, ref missing, ref missing,
                            ref missing, ref missing, ref missing, ref missing,
                            ref missing, ref missing, ref missing, ref replaceAll,
                            ref missing, ref missing, ref missing, ref missing);
                    }

Update:
Sieht etwas, das hilft mir hier aber nicht zu funktionieren scheint. Irgendeine Idee, wie kann ich die Kraft des document-Objekts verwenden Sie die unten vor dem export.

field.ShowCodes = true;
  • Dateiname mit Pfad. Ich bin mit diesem vor dem Export in XPS. Ich will nicht zu ändern, das ursprüngliche Dokument, das geöffnet wird, mit nur-Lesen.
  • Es klingt so, als ob Sie ersetzen möchten, und die Felder von Ihren Ergebnissen, vielleicht selektiv. Wenn dem so ist, benötigen Sie zum Durchlaufen der Auflistung der Felder in der angegebenen StoryRange, überprüfen Sie das Feld Typ, und verwenden .Unlink auf die Felder, wo Sie wollen das Ergebnis statt (z.B., vielleicht haben Sie nicht wollen, ersetzen Sie { PAGE } von dessen Ergebnis). Ansonsten, es ist nicht klar, was Sie ersetzen möchten, und Datum Felder mit, genau.
  • aktualisiert die Frage mit Ihrem Ansatz, auch kein Glück.bin ich etwas fehlt hier!!
InformationsquelleAutor Jay | 2013-07-18
Schreibe einen Kommentar