Как удалить пустой столбец из таблицы, созданной в docx?

Я написал руководство по произношению для иностранного языка. Он содержит информацию о каждом слове в списке. Я хочу использовать docx, чтобы показать руководство по произношению над исходными словами и часть речи под словами.

Желаемый результат выглядит следующим образом:

pronunciation_1 | pronunciation_2 | pronunciation_3
---------------------------------------------------
word_1          | word_2          | word_3
---------------------------------------------------
part_of_speech_1 | part_of_speech_2|part_of_speech_3

Вот пример кода моей попытки заставить это работать.

from docx import Document
from docx.shared import Inches
document = Document()
table = document.add_table(rows=3,cols=1)
word_1 = ['This', "th is", 'pronoun']
word_2 = ['is', ' iz', 'verb']
word_3 = ['an', 'uh n', 'indefinite article']
word_4 = ['apple.','ap-uh l', 'noun']
my_word_collection = [word_1,word_2,word_3,word_4]
for word in my_word_collection:
    my_word = word[0]
    pronounciation = word[1]
    part_of_speech = word[2]
    column_cells = table.add_column(Inches(.25)).cells
    column_cells[0].text = pronounciation
    column_cells[1].text = my_word
    column_cells[2].text = part_of_speech
document.save('my_word_demo.docx')

Вот как выглядят результаты: Как удалить пустой столбец из таблицы, созданной в docx?

Мой конкретный вопрос:

Как я могу избавиться от этого пустого первого столбца?

Я не знаю, почему он продолжает появляться, но он есть... заранее спасибо за помощь!

table = document.add_table(rows=3,cols=1) Предположительно это cols=1 та пустая первая колонка?
Imperishable Night 19.06.2019 03:20

@ImperishableNight, сработало! Это ответило на один из моих трех вопросов, и, оглядываясь назад, я должен был уже это попробовать. Это действительно два других вопроса, которые меня убивают, хотя ..

Python_Learner_DK 19.06.2019 03:23

Вы должны задать два других вопроса отдельно. StackOverflow (SO) ориентирован на вопрос и ответ Один. Вам решать, как совместить это вместе в решении вашей проблемы. Это делает ответы более целенаправленными и с большей вероятностью будет полезным для кого-то еще. Это также снижает усилия по каждому вопросу, что привлекает больше респондентов.

scanny 19.06.2019 04:33

@scanny - спасибо за обратную связь и за то, что помогли мне стать лучшим участником SO. Сделал то, что вы предложили, создал два новых вопроса: 1.) stackoverflow.com/q/56663481/3225420 и 2.) stackoverflow.com/q/56663109/3225420

Python_Learner_DK 19.06.2019 10:42

@ImperishableNight - я сокращаю этот первоначальный вопрос до единственного вопроса, на который вы первоначально ответили для меня. Если вы измените свой комментарий на ответ, я выберу его в качестве ответа. Еще раз спасибо за помощь!

Python_Learner_DK 19.06.2019 10:43
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
5
799
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Первый столбец существует при первоначальном создании таблицы, и он пуст, потому что вы создаете столбец новый перед записью каждого элемента. Итак, вам нужно что-то вроде этого, чтобы «использовать» первый столбец для первого слова и только после этого создавать новые столбцы:

table = document.add_table(rows=3, cols=1)
for idx, word in enumerate(words):
    column = table.columns[0] if idx == 0 else table.add_column(..)
    cells = column.cells
    ...

Другие вопросы по теме