Как удалить пустой столбец из таблицы, созданной в docx? - PullRequest
1 голос
/ 19 июня 2019

Я написал руководство по произношению для иностранного языка. Он содержит информацию о каждом слове в списке. Я хочу использовать 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')

Вот как выглядят результаты: Screenshot of how my code renders the text in MS Word 2010

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

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

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

1 Ответ

0 голосов
/ 19 июня 2019

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

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
    ...
...