【问题标题】:How remove blank column from table created in docx?如何从 docx 中创建的表中删除空白列?
【发布时间】:2023-03-31 18:52:01
【问题描述】:

我写了一本外语发音指南。它包含有关列表中每个单词的信息。我想用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')

结果如下所示:

我的具体问题是:

我怎样才能摆脱空白的第一列?

我不知道为什么它一直出现,但确实...提前感谢您帮助我!

【问题讨论】:

  • table = document.add_table(rows=3,cols=1) 大概这个cols=1 是第一列空白?
  • @ImperishableNight,它成功了!这回答了我的三个问题之一——事后看来,我应该已经尝试过了。真的是其他两个问题让我很生气..
  • 你应该分开问另外两个问题。 StackOverflow (SO) 面向 single 问题和答案。您可以将它们组合成解决您的问题的方法。这使得答案更有针对性,更有可能对其他人有用。它还减少了每个问题的工作量,从而吸引了更多的受访者。
  • @scanny - 感谢您的反馈并帮助我成为更好的 SO 成员。已完成您的建议,创建了两个新问题:1.) stackoverflow.com/q/56663481/3225420 和 2.) stackoverflow.com/q/56663109/3225420
  • @ImperishableNight - 我将这个原始问题简化为您最初为我回答的单个问题。如果您将评论更改为答案,我将选择它作为答案。再次感谢您帮助我!

标签: python python-3.x docx python-docx


【解决方案1】:

第一列是从初始表创建开始的,它是空白的,因为您在编写每个项目之前创建了一个 new 列。所以你需要这样的东西来“用完”第一个单词的第一列,然后只创建新列:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    相关资源
    最近更新 更多