Ich möchte einige Tabellen aus einem Dokument basierend auf dem Inhalt der oberen linken Zelle entfernen.Python docx Tabelle aus Dokument löschen
Ich habe versucht:
allTables = document.tables
for activeTable in allTables:
if activeTable.cell(0,0).paragraphs[0].text == 'some text':
allTables.remove(activeTable)
ich alle Tabellen mit 'etwas Text' in der Zelle (0,0) entfernt erwartet haben, aber sie sind immer noch in dem Dokument.
Der Prozess tritt in die Zeile mit "allTables.remove (activeTable)" wie erwartet: indexToDelete = allTables.index(activeTable)
innerhalb der if-Anweisung gibt die Tabellen, die ich suche.
Die Botschaft ist „Prozess mit Exit-Code 0 beendet“
Dies ist nicht das Problem. Der Code 'für activeTable in allTables: wenn activeTable.cell (0,0) .Abschreibungen [0] .text == 'irgendein Text': indexOfTableToDelete = allTables.index (activeTable) drucken (" Table to delete: " , 1+ indexOfTableToDelete) del allTables [indexOfTableToDelete] ' – Bartli
Entschuldigung. Mein Kommentar wurde gesendet, bevor es fertig war. Der Code 'für activeTable in allTables: wenn activeTable.cell (0,0) .Abschreibungen [0] .text == 'irgendein Text': indexOfTableToDelete = allTables.index (activeTable) drucken (" Table to delete: " , 1+ indexOfTableToDelete) del allTables [indexOfTableToDelete] 'druckt: Tabelle zu löschen: 3 Tabelle zu löschen: 8 Tabelle zu löschen: 10 Das sind die Tabellen, die ich suche. – Bartli
Ah, okay. Ich sehe, was jetzt passiert. Sie entfernen die Tabelle aus der Liste, die 'document.tables' zurückgibt (' allTables'), aber die Tabelle nicht aus der zugrunde liegenden XML-Datei entfernt. Versuchen Sie 'activeTable._element.getparent(). Remove (activeTable._element)' stattdessen. – scanny