python-docx

系统 1426 0

基础使用

1.创建一个document文档对象

            
              from docx import Document
document = Document()

            
          

2.向文档中添加段落

添加一段话:

            
              paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')
(调用后会返回一个Paragraphs段落对象的引用)

            
          

可将上面返回的对象作为一个游标,在已有段落之前加入:

            
              prior_paragraph = paragraph.insert_paragraph_before('Lorem ipsum')

            
          

3.添加标题

默认为top-level标题

            
              document.add_heading('The REAL meaning of the universe')

            
          

可由level参数指定标题级别

            
              document.add_heading('The role of dolphins', level=2)

            
          

4.添加分页符

            
              document.add_page_break()

            
          

5.添加列表

            
              table = document.add_table(rows=2, cols=2)
(返回一个Tables对象)

            
          

还可对Tables对象中的单元格cell进行操作:

            
              cell = table.cell(0, 1)

            
          

向其中添加内容:

            
              cell.text = 'parrot, possibly dead'

            
          

还可以一行行的操作:

            
              row = table.rows[1]
row.cells[0].text = 'Foo bar to you.'
row.cells[1].text = 'And a hearty foo bar to you too sir!'

            
          

并且rows和columns是可迭代的,例如:

            
              for row in table.rows:
    for cell in row.cells:
        print(cell.text)

            
          

用len() 查询rows或columns的个数:

            
              row_count = len(table.rows)
col_count = len(table.columns)

            
          

继续添加行:

            
              row = table.add_row()

            
          

对于变长的表格,可以这样做:

            
              # get table data -------------
items = (
    (7, '1024', 'Plush kittens'),
    (3, '2042', 'Furbees'),
    (1, '1288', 'French Poodle Collars, Deluxe'),
)

# add table ------------------
table = document.add_table(1, 3)

# populate header row --------
heading_cells = table.rows[0].cells
heading_cells[0].text = 'Qty'
heading_cells[1].text = 'SKU'
heading_cells[2].text = 'Description'

# add a data row for each item
for item in items:
    cells = table.add_row().cells
    cells[0].text = str(item.qty)
    cells[1].text = item.sku
    cells[2].text = item.desc

            
          

设定表格样式风格:

            
              table.style = 'LightShading-Accent1'

            
          

6.添加图片

            
              document.add_picture('image-filename.png')

            
          

图片大小,可直接设定宽高:

            
              from docx.shared import Inches
document.add_picture('image-filename.png',width=Inches(1.0))

            
          

7.设置段落风格

可在创建paragraph时设定:

            
              document.add_paragraph('Lorem ipsum dolor sit amet.', style='ListBullet')

            
          

也可之后设定:

            
              paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')
paragraph.style = 'List Bullet'

            
          

8.使用加粗和倾斜

在通过add_paragraph()添加一段文字之后,还可以在这段中添加更多文字,通过add_run()

            
              paragraph = document.add_paragraph('Lorem ipsum ')
paragraph.add_run('dolor sit amet.')
(这个方法会返回一个Run对象)

            
          

可对Run对象设定是否加粗、倾斜

            
              paragraph.add_run('dolor').bold = True

            
          

is equivalent to:

            
              run = paragraph.add_run('dolor')
run.bold = True

            
          

9.设定字体样式

            
              paragraph = document.add_paragraph('Normal text, ')
paragraph.add_run('text with emphasis.', 'Emphasis')

            
          

is equivalent to:

            
              paragraph = document.add_paragraph('Normal text, ')
run = paragraph.add_run('text with emphasis.')
run.style = 'Emphasis'

            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论