Python-docx - 如何更改表字体大小?

时间:2017-03-24 19:32:15

标签: python-2.7 python-docx

table = document.add_table(rows=1, cols=1)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Qty'

我必须更改表格中包含一行一列的文本'Qty'的字体大小,我该如何制作呢?

3 个答案:

答案 0 :(得分:5)

您需要获取单元格中的段落。来自python-docx的文档:

  

3.5.2 _Cell对象:
  class docx.table._Cell (tc,parent)

     

段落
  单元格中的段落列表。需要表格单元格   包含至少一个块级元素并以段落结尾。通过   默认情况下,新单元格包含单个段落。只读

参考:python-docx Documentation - Read the Docs

代码:

更改文本'Qty'的字体大小

paragraph =hdr_cells[0].paragraphs[0]
run = paragraph.runs
font = run[0].font
font.size= Pt(30) # font size = 30

要更改整个表的字体大小:

for row in table.rows:
    for cell in row.cells:
        paragraphs = cell.paragraphs
        for paragraph in paragraphs:
            for run in paragraph.runs:
                font = run.font
                font.size= Pt(30)

如何访问表格中的段落:Extracting data from tables

答案 1 :(得分:0)

该解决方案确实很有帮助。我用了一段时间。但是我发现了一个小问题:时间。随着表的增大,建立表的时间也越来越长。所以我改善了。切两轮。您在这里:

代码将更改整个表格

for row in table.rows:
    for cell in row.cells:
        paragraphs = cell.paragraphs
        paragraph = paragraphs[0]
        run_obj = paragraph.runs
        run = run_obj[0]
        font = run.font
        font.size = Pt(30)

当你砍两回合可以节省时间

答案 2 :(得分:0)

基于 user7609283 的回答,这里有一个简短的版本,用于将单元格设置为粗体(单元格在应用格式之前必须包含文本,因为它会查找第一段):

    row_cells = table.add_row().cells
    row_cells[0].text = "Customer"
    row_cells[0].paragraphs[0].runs[0].font.bold = True