下面的代码片段基本上创建了一个表,其中包含新单词文档中所需的行数和列数,即2列和14行。然后,它会相应地将内容添加到行和列中。
from docx import Document
newDoc=Document()
newDoc.add_heading ('GIS Request Form')
newDoc.add_paragraph()
#inserting a table and the header and value objects to the table
table=newDoc.add_table(rows=14,cols=2)
table.style='Table Grid'
table.autofit=False
table.columns[0].width=2500000
table.columns[1].width=3500000
#inserting contents into table cells
for i in range(0,14):
row=table.rows[i]
row.cells[0].text=reqdheaderList[i]
row.cells[1].text=reqdvalueList[i]
我一直在尝试将第1列中所有内容的内容加粗,但它无效。
#inserting contents into table cells
for i in range(0,14):
row=table.rows[i]
row.cells[0].text=reqdheaderList[i]
row.cells[0].paragraphs[0].add_run(line[0]).bold=True
row.cells[1].text=reqdvalueList[i]
帮助?
答案 0 :(得分:3)
您可以使用以下循环实现:
bolding_columns = [0]
for row in list(range(14)):
for column in bolding_columns:
table.rows[row].cells[column].paragraphs[0].runs[0].font.bold = True
答案 1 :(得分:0)
扩展@Nikos Tavoularis答案;您还可以添加辅助功能。例如:
from docx import Document
def make_rows_bold(*rows):
for row in rows:
for cell in row.cells:
for paragraph in cell.paragraphs:
for run in paragraph.runs:
run.font.bold = True
doc = Document()
table = doc.add_table(rows=4, cols=2)
table.cell(0, 0).text = "Some text"
table.cell(1, 0).text = "Some bold text"
table.cell(1, 1).text = "Some more bold text"
table.cell(2, 0).text = "Some text"
table.cell(3, 1).text = "And more bold text"
make_rows_bold(table.rows[1], table.rows[3])
doc.save('test.docx')
答案 2 :(得分:0)
您可以重写这两行
row.cells[0].text=reqdheaderList[i]
row.cells[0].paragraphs[0].add_run(line[0]).bold=True
到
row.cells[0].paragraphs[0].add_run(reqdheaderList[i]).bold=True