python word 表格 框线,使用python-docx在表格中指定边框外观

I am going through the tutorial and documentation of python-docx.

However, I can't find any reference to how I can specify and manipulate the border appearance of a table created in a Microsoft Word document.

When i use the following code:

from docx import Document

from docx.shared import Inches

document = Document()

################################

################################

################################

table = document.add_table(rows=1, cols=3)

hdr_cells = table.rows[0].cells

hdr_cells[0].text = 'Qty'

hdr_cells[1].text = 'Id'

hdr_cells[2].text = 'Desc'

row_cells = table.add_row().cells

row_cells[0].text = 'Str0'

row_cells[1].text = 'Str1'

row_cells[2].text = 'Str2'

row2_cells = table.add_row().cells

row2_cells[0].text = 'Str00'

row2_cells[1].text = 'Str11'

row2_cells[2].text = 'Str22'

################################

################################

################################

document.save('demo.docx')

The resulting docx file shows the 3x3 table with header. Currently there is no black border (inner or outer) on this table.

How can I specify an upper and lower border around the header, a lower border to wrap around the table, as well as an inner vertical border?

For example:

888b97268848c1af86c8d4f264a8154f.png

解决方案

Unfortunately, there is no way to directly manipulate table borders from within python-docx. You basically need to use a style, which specifies these. The style must already exist in Word.

In order to generate a table style to your liking, you need to manually create a new empty document in Word, customize one of the existing table styles there (e.g. Colorful Shading), and add a table using this modified style. Next, you delete this table and save the file (say example.docx) on your disk. This is necessary for the modified style to be saved in the document.

All you have to do then is load the file using python-docx and add a new table, which will reference the (modified) table style:

document = Document('example.docx')

table = document.add_table(rows=1, cols=3)

table.style = 'ColorfulShading'

See also Understanding styles in the documentation for details on how styles in Word work.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值