python修改单元格格式太多_超实用的python干货!小白不要错过了

一些非常有用的技巧,一定要看完

python有很多第三方库,前面的文章已经说过使用python-pptx库了。

同样的,要想用python处理word文档就需要安装python-docx库。

[图片上传失败...(image-256304-1607071055507)]

1、安装python-docx库

首先找到python根目录(就是有python.exe的文件夹)打开Scripts文件夹

Shift+鼠标右键选择在此处打开

powershell窗口或者cmd窗口输入

pip install python-docx按下回车等待安装完成。

2、基本操作语法

2.1打开文档

document = Document()

第一行从docx模块中引入Document类;

第二行是声明一个Document()对象,相当于创建了一个docx文档,为文档增加一些内容。

第三行进行了一些操作的文档保存到一个文件中。

不填默认为新建一个文档。

from docx import Document

document = Document()

document.save("演示如何操作Word文档.docx")

要打开一个已存在的文件

document = Document("已存在的文件名.docx")

2.2加入不同等级的标题

document.add_heading(u'总标题',0)

document.add_heading(u'一级标题',1)

document.add_heading(u'二级标题',2)

add_heading()方法会在文档的末尾添加标题,可以带两个参数,参数text是标题的文本,level是标题的级别,可以设置的范围是0-9,0代表文档标题,从1开始分别对应一级标题、二级标题一直到九级标题,默认值是1。

如果设置的数字超过这个范围,编译器会报ValueError。

2.3添加文本、段落

paragraph = document.add_paragraph(u'文本内容')

add_paragraph()会在文档末尾添加段落,此方法可以接受两个参数,text为段落的文本内容,这个文本内容可以包含\t、\n等特殊字符。style参数用来设置样式

from docx import Document

lyric = "那一年的雪花飘落梅花开枝头\n那一年的华清池旁留下太多愁\n"

lyric = lyric + "不要说谁是谁非感情错与对\n只想梦里与你一起再醉一回\n"

lyric_add = "爱恨就在一瞬间\n举杯对月情似天\n"

lyric_add = lyric_add + "爱恨两茫茫\n问君何时恋"

document = Document()

paragraph = document.add_paragraph(text=lyric)

paragraph.add_run(text= lyric_add)

prior_paragraph = paragraph.insert_paragraph_before('新贵妃醉酒')

document.save("1-使用段落.docx")

add_paragraph()方法会返回Paragraph()对象。该对象包含了对此段文本进行操作的一些方法和属性,如下:

· add_run():用来追加段落内容,设置样式等。

· clear():将段落删除,并返回该段内容,但是格式和样式会保留

· insert_paragraph_before():在本段落之前插入新段落。

· alignment:设置对齐方式

· paragraph_format:设置段落格式

· style:返回样式

· text:返回文本

2.4设置字号

run = paragraph.add_run(u'设置字号、')

run.font.size = Pt(24)

2.5设置英文字体

run = paragraph.add_run('Set Font,')

run.font.name = 'Consolas'

2.6设置中文字体

run = paragraph.add_run(u'设置中文字体、')

run.font.name=u'宋体'

r = run._element

r.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

2.7设置斜体

run = paragraph.add_run(u'斜体、')

run.italic = True

2.8 设置粗体

run = paragraph.add_run(u'粗体').bold = True

2.9增加引用

document.add_paragraph('Intense quote', style='Intense Quote')

2.10 增加列表

document.add_paragraph(

u'无序列表元素1', style='List Bullet'

)

document.add_paragraph(

u'无序列表元素2', style='List Bullet'

)

Style='List Bullet'为无序列表

Style='List Number'为有序列表

2.11添加图片

add_picture(image_path_or_stream, width=None, height=None)

可以调整图片的宽和高,此处不讨论

from docx import Document

document = Document()

document.add_picture('1.png', width=Inches(1.25))

1.png为图片名称(图片位置必须与代码文件在同一个文件夹内)

2.12增加表格

add_table()方法会返回一个Table对象。rows代表行数,cols代表列数;style代表样式,暂时不谈。

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

hdr_cells = table.rows[0].cells

hdr_cells[0].text = 'Name'

hdr_cells[1].text = 'Id'

hdr_cells[2].text = 'Desc'

Table()对象中报了对表格进行操作的方法和属性,如下:

· add_column(width):添加列(需要设置列宽)

· add_row():添加行

· cell(row_idx, col_idx):访问单个单元格

· row_cells(row_idx):返回一个序列(行号为row_idx的行内所有单元格)

· column_cells(column_idx):返回一个序列(列号为column_idx的列内所有单元格)

· rows:返回的是_Rows对象,是一个包含了所有行(_Row对象)的列表

· columns:返回的是_Columns对象,是一个包含了所有列(_Column对象)的列表

想要熟练使用python-docx操作Word文档:需要认识Table()、_Cell()、 _Row()、 _Rows() _Column() 和 _Columns()五个类。

2.13 再增加3行表格元素

cell()方法实际上是返回了一个_Cell()对象。_Cell()对象代表的是一个具体的单元格,包含了操作一个单个单元格的方法与属性,如下:

· add_paragraph(text=u'', style=None):在单元格内添加段落。

· add_table(rows, cols):在单元格中添加表格

· merge(other_cell):合并单元格

for i in range(3):

row_cells = table.add_row().cells

row_cells[0].text = 'test'+str(i)

row_cells[1].text = str(i)

row_cells[2].text = 'desc'+str(i)

2.14增加分页

document.add_page_break()

要在Word文档中使用分页,要使用Document()对象中的add_page_break()方法,会返回一个包含一个分页符的Paragraph对象。

from docx import Document

document = Document()

document.add_paragraph('这是第一页')

document.add_page_break()

document.add_paragraph('这是第二页')

document.save("5-使用分页.docx")

2.15增加章节

默认是增加一个新页

document.add_section(start_type=2)

2.16保存文件

document.save(u'测试.docx')

2.17读取文档中的内容

方向:反向利用属性

(1)读取段落文本

from docx import Document

document = Document("1-使用段落.docx")

for each in document.paragraphs:

print(each.text)

document的paragraphs属性,会返回一个列表,列表内容为文档中所有段落(为Paragraph对象)的合集。

(2)读取标题

需要注意的是,对于一个Document来说,标题也是Paragraph。所谓标题,严格上说是一种带了格式的段落。

from docx import Document

document = Document("0-使用标题.docx")

for each in document.paragraphs:

print(each.text)

(3)读取表格单元格内容

使用tables属性,可以读取所有的表格;

from docx import Document

document = Document("3-使用表格.docx")

for each in document.tables:

print(each)

print(document.tables[0].cell(0,0).text)

# 表格对象

1 # 第一个表格中第一个单元格的内容

(4)读取图片

需要使用inline_shapes属性;

from docx import Document

document = Document("7-使用图片.docx")

for each in document.inline_shapes:

print(each)

# 图片对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值