左上のセルの内容に基づいて文書からいくつかのテーブルを削除したいと思います。python docx文書からのテーブルの削除
私が試した:
allTables = document.tables
for activeTable in allTables:
if activeTable.cell(0,0).paragraphs[0].text == 'some text':
allTables.remove(activeTable)
私は、セルの「いくつかのテキスト」(0,0)を含むすべてのテーブルを削除したと予想、しかし、彼らは、文書にまだあります。
プロセスは、 "allTables.remove(activeTable)"という行を期待通りに入力します。indexToDelete = allTables.index(activeTable)
if文内に、私が探しているテーブルがあります。
メッセージは、テストif activeTable...text == 'some text'
は、テーブルのいずれにも成功していないようですね
これは問題ではありません。すべてのテーブルのactiveTableコード: if activeTable.cell(0,0).paragraphs [0] .text == 'some text': indexOfTableToDelete = allTables.index(activeTable) print( "削除するテーブル:" 、1 + indexOfTableToDelete) del allTables [indexOfTableToDelete] – Bartli
申し訳ありません。私のコメントは、それが終わる前に送られました。すべてのテーブルのactiveTableコード: if activeTable.cell(0,0).paragraphs [0] .text == 'some text': indexOfTableToDelete = allTables.index(activeTable) print( "削除するテーブル:" 、1 + indexOfTableToDelete) del allTables [indexOfTableToDelete] 'prints:削除するテーブル:3 削除するテーブル:8 削除するテーブル:10これらは私が探しているテーブルです。 – Bartli
ああ、大丈夫です。私は今起こっていることを見る。 'document.tables'が返すテーブルをリストから削除していますが(' allTables')、それはテーブルを基になるXMLから削除しません。代わりに、 'activeTable._element.getparent()。remove(activeTable._element)'を試してください。 – scanny