Python 办公自动化 处理 Excel 数据 【1】推荐

news2024/9/24 17:15:54

话说学好办公自动化,走遍天下都不怕!!!

好的,现在开始。

因为是一些办公自动化的应用场景,所以需要电脑支持excel、word和ppt以及python的运行环境。

如果有电脑不支持Excel word ppt的以及python环境下载安装配置可以去参考。如果有问题欢迎评论区指正,谢谢。

目录

一、xlrd和xrwt 操作Excel

1.xlrd模块

1.1 安装查看并导入依赖

1.2 xlrd常用的函数

1) xlrd.open_workbook函数

2)  data.sheet_loaded()

3)卸载 加载的工作表簿 unload_sheet()

4)获取sheets的几种方式

2. xlrd操作Excel 【读取】

2.1 xlrd操作Excel的行

 2.2   xlrd操作Excel操作列

2.3 操作excel 单元格

3.xlwt模块

3.1 安装导入依赖

3.2 xlwt的内容

1)创建工作簿

2)写入数据

3)写入样式格式化 


一、xlrd和xrwt 操作Excel

xlrd和xrwt都是python的第三方模块。主要介绍模块的依赖安装以及模块的使用。

1.xlrd模块

xlrd是python的第三方模块,用来读取excel表格数据的。 

1.1 安装查看并导入依赖
# 安装依赖
pip install xlrd

# 查看已安装依赖
pip list

#导入依赖
import xlrd

现在我们已经成功安装xlrd的依赖,并且成功导入模块了,现在我们先了解一下xlrd的常用函数、xlrd如何操作excel单元行列以及单元格。

1.2 xlrd常用的函数

在介绍函数之前,因为是 理论加实践,所以要先新建项目Excel文件.

首先我们先创建项目,这里前面已经新建好了,关于python环境安装运行前面都有的,然后新建demo.js文件,并且在demo文件导入xlrd模块。

我这里有一份Excel工作量核对表 , 现在把文件导入项目命名为data, 放在demo.py文件的同一级

 准备工作现在已完成,现在可以使用xlrd的函数了,主要包括:读取文件函数 | 

1) xlrd.open_workbook函数

读取文件函数返回的是工作簿的对象,函数默认的一些参数如下图所示.

data = xlrd.open_workbook('data.xls')  #返回值是工作簿的对象

2)  data.sheet_loaded()

sheet_loaded 文件簿是否被加载,结果返回布尔值,返回true表示被加载。

3)卸载 加载的工作表簿 unload_sheet()

unload_sheet是卸载被加载的工作簿,卸载之后重新查看之前被加载的文件,已经是false说明已经成功卸载。其他的工作表还是加载的。

 

 

4)获取sheets的几种方式

获取工作表的几种方式:获取全部、获取单个sheet、按照名称或者索引获取sheet、sheet数量、sheet名称name值等。

data = xlrd.open_workbook('data.xls')  #返回值是工作簿的对象
print(data.sheets())  #获取全部sheets 
print(data.sheets()[0]) #根据返回的sheets的index值获取sheet
print(data.nsheets)  # 返回excel工作表的数量
print(data.sheet_by_index(0)) #根据索引获取工作表
print(data.sheet_names()) #获取所有工作表的name 
print(data.sheet_by_name("Sheet1")) #根据sheetname进行获取  Sheet1 这里区分大小写

以上就是xlrd的一些常用函数以及属性,下面介绍xlrd操作行和列。

2. xlrd操作Excel 【读取】

2.1 xlrd操作Excel的行

array('B', [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0]),在单元格的数据类型中:0表示空、1表示字符串 、2表示number 、3表示date 、4.布尔值、 5是error。

#操作excel行  

sheet = data.sheet_by_index(0) #通过索引获取第一个sheet

print(sheet.nrows) #获取当前sheet下的有效行数 18

print(sheet.row(1)) #该行单元格对象组成的列表

print(sheet.row_types(2)) #获取单元格的数据类型

print(sheet.row(2)[3].value)  #获取单元格的value值

print(sheet.row_values(2)) #得到指定行单元格的值

print(sheet.row_len(2))  #得到单元格的长度

 2.2   xlrd操作Excel操作列

和行返回单元格数据类型一样,列也有返回单元格数据类型:0表示空、1表示字符串 、2表示number 、3表示date 、4.布尔值、 5是error。

# excel操作列
sheet = data.sheet_by_index(0)  
print(sheet.ncols)
print(sheet.col(3)) #该列单元格对象列表
print(sheet.col(3)[0].value)
print(sheet.col_values(1)) #返回该列value组成的列表
print(sheet.col_types(2))

上面运行执行结果如下图所示。 

 

操作行和操作列基本方法和属性都已经了解了,下面是如何操作excel单元格。 

2.3 操作excel 单元格

单元格和行列一样,也有数据类型:0表示空、1表示字符串 、2表示number 、3表示date 、4.布尔值、 5是error。

#操作excel 单元格
sheet = data.sheet_by_index(0)
print(sheet.cell(4,4)) #获取第5行第5列的数据
print(sheet.cell_type(4,4))
print(sheet.cell(4,4).ctype) #获取单元格数据类型

print(sheet.cell(4,4).value)
print(sheet.cell_value(4,4)) #获取单元格的value值

代码执行结果如下图所示:

 

3.xlwt模块

xlrd是python的第三方模块,用来写入excel表格数据的。 

3.1 安装导入依赖
# 安装写入依赖 xlwt模块
pip install xlwt

#查看已安装模块
pip list

#导入xlwt模块
import xlwt

xtwt写入Excel的步骤:1.创建工作簿 2.创建工作表 3.填充工作表内容 4.保存文件 

3.2 xlwt的内容
1)创建工作簿

exwt的写入步骤以及注意事项:

import xlwt
# 1.创建工作簿
wb = xlwt.Workbook()  #创建工作簿对象
# 2.创建工作表
ws = wb.add_sheet("CNY")
# 3.填充数据
ws.write_merge(0,1,0,5,"货币兑换表")  # 参数 0,1 是指 第一行第二行合并单元格 0,5 是第一列和第六列合并单元格 货币兑换表是表的名称
# 4.保存
wb.save("2019-CNY.xls") #只支持xls格式 不支持xlsx格式

执行文件之后文件夹生成了刚刚创建的工作簿。

2)写入数据

向工作簿中添加数据

# 要添加的数据
data = (
    ("Data","英镑","人民币","港币","日元","美元"),
    ("01/01/2019",8.722551,1,0.877885,0.062722,6.8759),
    ("01/01/2019",8.634922,1,0.875731,0.062773,6.8601)
)
# 循环遍历之后写入工作簿
for i,item in enumerate(data):
    for j,val in enumerate(item):
        ws.write(i+2,j,val)

# 保存
wb.save("2019-CNY.xls")

 

写入图片数据

# 创建工作表
wsimg = wb.add_sheet("img") #创建img工作表
#写入图片
wsimg.insert_bitmap("2020.bmp",0,0) #2020.bmp是图片名称 0,0 是从第1行第一列开始插入图片
# 保存
wb.save("2019-CNY.xls") 

3)写入样式格式化 

这里我们把工作簿中的标题以及第一列做出样式调整,包括文字大小、颜色、对齐方式、文字类型、单元格边框、单元格背景、文字对齐方式等。

最终效果和代码都在下面: 

import xlwt

# 字体样式
titleStyle = xlwt.XFStyle() #初始化样式
titlefont = xlwt.Font()
titlefont.name = "宋体"
titlefont.bold = True #字体加粗
titlefont.height = 11*20 # 字体大小
titlefont.colour_index=0x08 #字体yanse
titleStyle.font = titlefont

# 单元格对齐方式
cellalign = xlwt.Alignment()
cellalign.horz = 0x02 # 水平对齐
cellalign.vert = 0x01 # 垂直对齐
titleStyle.alignment = cellalign

# border边框样式
borders = xlwt.Borders() 
borders.right = xlwt.Borders.DASHED  #设置虚线
borders.bottom = xlwt.Borders.DOTTED #设置点线
titleStyle.borders = borders

# 背景颜色
datastyle = xlwt.XFStyle()
bgcolor = xlwt.Pattern()
bgcolor.pattern = xlwt.Pattern.SOLID_PATTERN
bgcolor.pattern_fore_colour = 22 #背景颜色22
datastyle.pattern = bgcolor

# 1.创建工作簿
wb = xlwt.Workbook()  #创建工作簿对象
# 2.创建工作表
ws = wb.add_sheet("CNY")
wsimg = wb.add_sheet("img") #创建img工作表

#写入图片
wsimg.insert_bitmap("2020.bmp",0,0) #2020.bmp是图片名称 0,0 是从第1行第一列开始插入图片

# 3.填充数据
ws.write_merge(0,1,0,5,"货币兑换表",titleStyle)  # 参数 0,1 是指 第一行第二行合并单元格 0,5 是第一列和第六列合并单元格 货币兑换表是表的名称

data = (
    ("Data","英镑","人民币","港币","日元","美元"),
    ("01/01/2019",8.722551,1,0.877885,0.062722,6.8759),
    ("01/01/2019",8.634922,1,0.875731,0.062773,6.8601)
)

for i,item in enumerate(data):
    for j,val in enumerate(item):
        if j == 0:
            ws.write(i+2,j,val,datastyle)
        else:
            ws.write(i+2,j,val)


# 4.保存
wb.save("2019-CNY.xls") #只支持xls格式 不支持xlsx格式

对应的取值,这里点进去都可以找到。

二、总结

到这里关于操作Excle数据xlrdxlwt的两个第三方模块。

1.模块的安装查看引入以及使用
2.xlrd模块中的常用函数打开工作簿 加载工作表、卸载工作表以及获取工作表的几种方法
3.xlrd模块如何操作Excle以及单元格
4.xlwt模块操作Excel的流程、如何导入数据、如何创建图片类型的文件、如何对写入的文件做
样式格式化、一些常用的样式设置。

2.关于xlrd的实际应用小实战项目放在下一章了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053478.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring 声明式事务 @Transactional

目录 一、添加依赖 二、Transactional 作用 三、Transactional详解 3.1 rollbackFor 3.2 事务隔离级别 3.3 Spring 事务传播机制 Spring 声明式事务 Transactional的使用很简单,只需要添加依赖,在需要的方法或者类上添加 Transactional注解即可。 …

珠海盈致联手深圳盈怡成功上线“混工单柔性智能生产装备”

珠海盈致联手深圳盈怡推出的“混工单柔性智能生产装备”在全面而严密的市场测试中显示出卓越的性能和极高的用户满意度。 经过两年的精细研发和内部测试优化,该柔性生产线已成功完成了样板工厂的所有环节,在深圳市贤丰科技有限公司成功试跑上线&#xf…

联影医疗笔试考什么?如何通过联影在线测评|附真题库面试攻略

职小豚 一、联影医疗公司介绍 嘿,朋友们!今天咱们来聊聊联影医疗这家在医疗领域大放异彩的企业。 联影医疗,那可是医疗科技界的一颗璀璨明星!它就像一位勇敢的探索者,在医疗影像设备的研发和创新道路上不断前行。 联…

机器视觉运动控制一体机VPLC532E在汽车胶带缠绕的开放式CNC应用

市场应用背景 在汽车线束和零配件中,胶带缠绕是一种常见且重要的加工工艺,主要用于线束/零配件的捆扎、固定、绝缘保护等应用。在缠绕头控制下,胶带均匀缠绕在汽车线束/零配件表面,完成缠绕后,系统自动执行切割。汽车…

(普通用户)Cannot connect to the Docker daemon at unix:///var/run/docker.sock.

报错: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?#大概像以下的报错内容 MernyPierreMBP:~ merny24$ docker info Client:Version: 26.1.4Context: defaultDebug Mode: falseServer: ERROR: Cann…

可以给IP地址申请SSL证书实现HTTPS访问吗?

IP地址证书,全称为IP地址的SSL/TLS证书,是一种专为公网IP地址(或内网映射的外网)颁发的数字证书。这种证书由受信任的证书颁发机构(CA)签发,旨在确保通过该IP地址进行的通信(特别是H…

家务一键搞定!Astribot S1机器人让你秒变“甩手掌柜“

星尘智能 在这个忙碌的现代社会,谁不渴望拥有一个能够帮我们处理繁琐家务的得力助手呢?就在最近,星尘智能公司推出的全新AI机器人Astribot S1,正在让这个梦想变为触手可及的现实。 Astribot S1 Astribot S1 性能对比 从官网给出的…

【Mdijourney】AI作画提示词工程:精细化技巧与高效实践指南

文章目录 💯AI作画提示词基础结构1 图片链接1.1 上传流程 2 文字描述3 后置参数 💯AI作画提示词的文字描述结构1 主体主体细节描述2 环境背景2.1 环境2.2 光线2.3 色彩2.4 氛围 3 视角4 景别构图5 艺术风格6 图片制作方法7 作品质量万能词 💯…

景区店铺管理系统---附源码91568

摘 要 景区店铺管理系统基于Django框架的设计与实现旨在提高景区内店铺管理的效率和便捷性。该系统利用Django框架的强大功能和易用性,结合数据库管理和用户交互设计,实现了景区店铺信息管理、订单处理、库存管理等功能模块。通过系统的智能化设计和用户…

算法日记day 42(动归之不相交的线|最大子数组和|判断子序列)

一、不相交的线 题目: 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足: nums1[i] nums2[j]且绘制的直线不与任何其他连线…

Kafka集群搭建的两种方式

目录 1. 依赖Zookeeper搭建集群 1. 下载Kafka二进制文件 2. 更改kafka配置 3. 启动Zookeeper集群和Kafka集群 4. 验证集群 1.创建主题 2. 检查主题是否存在 3. 创建生产者生产数据 4. 创建消费者消费数据 5. 检查Zookeeper中Kafka集群的元数据 2. 不依赖Zookeeper搭…

make/Makefile - ACM 时间及 make 的检查更新

文章目录 一、ACM 时间修改时间改变时间读取时间统一更新时间 二、make 会检查文件的新旧现象gcc 没有检查的功能,这个工作是 make 干的make/Makefile 通过对比时间了解可执行程序是不是最新的新的可执行程序和新的 .o 文件 一、ACM 时间 Linux 下文件属性中有 ACM…

骑行耳机哪个品牌好,精选热门榜单前五名机型实测体验

骨传导耳机凭借不入耳佩戴更健康安全灯特点火遍骑行圈,然而,虽然骨传导耳机如此热门,但我们在选择的时候也要擦亮双眼,避免入手到一些劣质机型,近期也是特意为大家挑选了几款排行榜单前五名骨传导耳机推荐。 那么&…

你见过哪些独特的代码注释

你见过哪些独特的代码注释 代码注释独特的代码注释启发 作为开发者,或者说作为程序员,每天和代码打交道,那么自然也就需要代码注释。从程序员的角度来看,代码注释必不可少。好的代码注释不仅能帮助开发者更好地理解代码&#xff0…

系统架构师计算题(1)——计算机系统基础知识(上)

持续刷题,持续总结,持续更新! 目录 1. 文件系统 题型1:多级索引 2. 存储管理 题型1:页式存储 题型2:段式存储 题型3:段页式存储 3. 磁盘读取 题型1:访问耗时 4. RAID 题型1:计算容量 1. 文件系统 文件在系统中的存储结构有如下几种: (1) 连续结构。 连续结构…

计算机Java项目|基于SpringBoot的物流管理系统设计与实现

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参…

2024年骨传导耳机大比拼:看看南卡、韶音、墨觉谁的实力更胜一筹?

作为一名数码产品博主,我能明显感觉到骨传导耳机近年来的快速发展。这类耳机让用户在享受清晰音质的同时,仍能保持对周围环境的感知,非常适合户外活动。所以有很多小伙伴就想入手一款,但是又怕踩雷,没事不用怕&#xf…

武汉流星汇聚:亚马逊高效赋能中国卖家,共绘跨境电商发展新蓝图

在全球电商领域,亚马逊始终以其独特的商业模式、卓越的技术实力和对用户体验的极致追求,引领着行业的潮流与发展。展望未来,亚马逊的发展前景依旧充满无限可能与光明,其将继续在全球跨境电商市场中扮演核心角色,为中国…

AI搜索引擎Perplexica的本地部署(之二)Perplexica的非docker安装

Perplex 是一个开源的AI 驱动的搜索引擎,可以使用 Grok 和 Open AI 等模型在计算机上本地安装和运行。它为学术研究、写作、YouTube 和 Reddit 提供了一系列搜索功能。用户可以通过选择不同的模型、设置本地嵌入模型和探索各种搜索选项来定制他们的体验。该工具演示…

异构数据同步 datax (2)-postgres 写扩展

1、postgres SQL 支持 插入更新操作(与mysql 语法有一定差异) 可参考下面文章 MySQL PostgreSQL批量插入更新insertOrUpdate_mysql insert update-CSDN博客 2、datax中,可通过源码调整来实现 参考来源 https://juejin.cn/post/71248991…