@comandante_ktc

Как удалить таблицу из docx документа python?

Нужно удалить 3 таблицы из файла в котором есть несколько таблиц
Я пытался удалить их по индексу
def rem1(file):
    doc = docx.Document(file)
    for i in [0,1,2]:
        doc.tables.pop(i)
    doc.save('new.docx')
def rem2(file):
    doc = docx.Document(file)
    tables = doc.tables
    for i in [0,1,2]:
        tables.pop(i)
    doc.save('new.docx')

Единственное, что нашёл это удаление таблицы по какой то клетке, но в моём случае нужно удалить определённые таблицы из файла, и все таблицы разные
allTables = document.tables

for activeTable in allTables:
    if activeTable.cell(0,0).paragraphs[0].text == 'some text':
        activeTable._element.getparent().remove(activeTable._element)
  • Вопрос задан
  • 421 просмотр
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Не проверял, но должно работать такое:
table_element = document.tables[индекс нужной таблицы]._element
parent = table_element.getparent()
parent.remove(table_element)
Ответ написан
Комментировать
Chegevara_kyc
@Chegevara_kyc
doc = docx.Document('file name.docx')
for i in range(x):# x - кол-во таблиц
    table_element = doc.tables[0]._element
    parent = table_element.getparent()
    parent.remove(table_element)
for paragraphs in doc.paragraphs:
    paragraphs.clear()# удаление пустых полей
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы