我的编程空间,编程开发者的网络收藏夹
学习永远不晚

用python 修改word中表格数据,插入图片 +实例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

用python 修改word中表格数据,插入图片 +实例分析

今天学习了关于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 ,文章中可能会出现各种错误,希望大佬观看时可以指出,谢谢。 在这里插入图片描述

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

用python 修改word中表格数据,插入图片 +实例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录