Laden...

Zelle in Table in Word Dokument lässt sich nicht editieren

Erstellt von oehrle vor 11 Jahren Letzter Beitrag vor 11 Jahren 829 Views
O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 11 Jahren
Zelle in Table in Word Dokument lässt sich nicht editieren

Hallo, kann mir jemand helfen? Ich muss in einem Word-Dokument sämtliche Bezeichnungen umbenennen und automatisiere das. In TetxBoxen funktionier das. Aber in Tabellen, immer in der ersten Spalte müssen auch die Begriffe ersetzt werden. Wenn ich einen neuen Wert in die Zelle schreiben will. dann bleibt der "alte Text" der Zelle dahinter geklemmt. Warum ? ich muss den doch komplett löschen und überschreiben können. Hat jemand eine Idee?
Hie rmal mein Code:



 opf.Filter = "Word-Dateien(*.doc, *.docx)|*.doc;*.docx";

            if (opf.ShowDialog() == false)
                return;

            //////  set the file name from the open file dialog
            object fileName = opf.FileName;
            object readOnly = false;
            object isVisible = true;
            //////   Here is the way to handle parameters you don't care about in .NET
            object missing = System.Reflection.Missing.Value;

            ////  Make word visible, so you can see what's happening
            WordApp.Visible = true;
            ////  Open the document that was chosen by the dialog
            //Document aDoc = WordApp.Documents.Open(ref fileName, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible);
            Document aDoc = WordApp.Documents.Open(opf.FileName, ReadOnly: false, Visible: true);
            
            ////  Activate the document so it shows up in front
            aDoc.Activate();

            //// JEe Tabelle im Word-Dokument durchlaufen
            foreach (Table docTbl  in aDoc.Tables)
            {
                //// Jede Row in der Tabelle durchlaufen
                foreach (Row row in docTbl.Rows)
                {
                    //// Erst Zelle der "Row" bereinigen (Texte entfernen)
                    string strTemp = row.Cells[1].Range.Text.Trim();
                    if (strTemp.Contains("\r"))
                        strTemp = strTemp.Replace("\r", "");
                    if (strTemp.Contains("\a"))
                        strTemp = strTemp.Replace("\a", "");

                    //// Suche nach Begriff in Datentabelle
                    DataRow[] rows = ds.Tables[0].Select("F0 = '" + strTemp + ".'");

                    //// Wenn Begriff in DataTable vorhanden, diesen überschreiben
                    if (rows.Length > 0)
                    {
                        //// ==> zwar keine Fehlermeldung, aber die Zelle wird nicht überschrieben, der Text wird davor geklemmt
                        row.Cells[1].Range.Text = rows[0][2].ToString();
                        row.Cells[1].Range.Font.Color = WdColor.wdColorViolet;
                    }

                }
            }