明天学习了对于word表格批改数据,插入图片的常识。Word表格跟对一般的文章段落解决不太一样,上面我就用我学校的请假条表格来带大家一一剖析。
1.导入python-docx库
在cmd中导入该库
pip install python-docx
上面是请假条的格局
2.读取docx文件
上面是导入的模块
from docx import Document
from docx.shared import Inches,Cm,Pt
from docx.oxml.ns import qn
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT//导入的对于word操作的相干模块
import datetime //获取以后日期
docx = Document('C:/Users/test/Desktop/请假条模板.docx')//docx文件的地址
当初咱们就获取了一个docx的对象
3.获取表格
应用如下形式获取表格
tables = docx.tables//获取所有表格
table=tables[0]//获取第一个表格
应用.tables获取该文档中所有表格,返回一个列表,因为笔者的表格是第一个,所以为tables[0]。
4.获取表格的单元
docx表格也想excel一样有行,列的属性,然而不会显示进去,所以却要自已去查找以确定元素的地位。 有以下的办法获取你的表格的行列数。
print(len(table.rows))//获取行的总数
print(len(table.columns))//获取列的总数
获取完表格的行列数后,就能够对相应的元素操作这里的行列数返回值为整数,后果如下上面咱们利用行列数确定元素地位,留神元素行列都是从0开始。 选中调用的办法为
指标=表.cell(坐标).paragraphs[该单元第几段(从零开始)]
例如咱们要确定下面请假条中班级的地位,咱们看到班级在第一行,故行标为0,处于列的第一个地位,故列标为0,故其坐标为.cell(0,0)。其余元素办法也如此。可能有时会呈现抉择的行列不对,能够本人向左右一一尝试,查看地位是否正确。
name =table.cell(0,0).paragraphs[0]
可能大家还对paragraphs[]的抉择还有一些纳闷,上面我用请假条中的例子为大家解说。
大家能够看到下面的请假条最初一个方格,有一个工夫填写,工夫与其余段落独特处于(2,1)这个地位,他的后面共有三行,所以他处于paragraphs[3]的地位
write_time=table.cell(2,1).paragraphs[3]
5.对选中的元素进行增加文字操作
上一步咱们曾经抉择了name,上面向其中增加元素,用法为
user_name =table.cell(0,0).paragraphs[0].add_run(想要增加的内容)
也能够为增加的内容进行字体设置
user_name.font.name='黑体'//设置字体品种
user_name.font.size=Pt(15)//设置字体大小
6.向表格中插入图片
笔者的学校须要用图片填写销假起因,那么咱们如何用图片填写表格呢,在docx文件中插入表格的用法为
docx.add_picture(图片的门路)
同理在表格中插入也是如此,无非是多了一步确定插入的地位,还是以下面的请假条为例,图片应该插入到销假起因的下一行,故地位为
run=table.cell(2,1).paragraphs[1].add_run()//插入一个文字块
增加图片操作
picture =run.add_picture(photo_path)
picture.height=Cm(4.4)//设置图片高度
picture.width=Cm(6.2)//设置图片宽度
7.保存文档
办法为
docx.save(门路)
8.小补充:datetime
笔者只应用了datetime 库中的获取当初的工夫 装置datetime 库
pip install datetime
获取当初工夫的办法
import datetime
dt = datetime.datetime.now()
能够应用dt.year,dt.month,dt.day别离获取明天的年,月,日
最初残缺代码如下 这里有一个获取图片的小技巧,就是间接拖动图片到要输出的门路上,嘿嘿。
from docx import Document
from docx.shared import Inches,Cm,Pt
from docx.oxml.ns import qn
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
import datetime
dt = datetime.datetime.now()
time = str(dt.year) +'年'+str(dt.month)+'月'+str(dt.day)+'日'
name=str(input('请输出你的姓名:'))
photo_path = str(input('请拖动图片到此:'))
docx = Document('C:/Users/test/Desktop/请假条模板.docx')
tables = docx.tables
table=tables[0]
xingming =table.cell(-1,3).paragraphs[0].add_run(name)
xingming.font.name='黑体'
xingming.font.size=Pt(15)
shijian = table.cell(-1,4).paragraphs[0].add_run(time)
shijian.font.name='黑体'
shijian.font.size=Pt(15)
shijian1=table.cell(2,1).paragraphs[3].add_run(time)
shijian1.font.name='黑体'
shijian1.font.size=Pt(15)
run=table.cell(2,1).paragraphs[1].add_run()
picture =run.add_picture(photo_path)
picture.height=Cm(4.4)
picture.width=Cm(6.2)
path='C:/Users/test/Desktop/'+name+' '+time+'请假条 '+'.docx'
docx.save(path)
成果如图图片能够插入,不不便展现。。。 笔者这里的代码没有填写批假人与班级,感兴趣的小伙伴能够本人试着填一下。 如果想要请假条模板能够评论通知我,我会发给你。 自己初学python ,文章中可能会呈现各种谬误,心愿大佬观看时能够指出,谢谢。
本文转自:https://www.sdk.cn/details/djgylbOGwjlobxAN1Z
SDK社区是一个中立的社区,这里有多样的前端常识,有丰盛的api,有爱学习的人工智能开发者,有有趣风趣的开发者带你学python,还有将来炽热的鸿蒙,当各种元素组合在一起,让咱们一起脑洞大开独特打造业余、好玩、有价值的开发者社区,帮忙开发者实现自我价值!
发表回复