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

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

好的,现在开始。

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

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

目录

[一、xlrd和xrwt 操作Excel](#一、xlrd和xrwt 操作Excel)

1.xlrd模块

[1.1 安装查看并导入依赖](#1.1 安装查看并导入依赖)

[1.2 xlrd常用的函数](#1.2 xlrd常用的函数)

1) xlrd.open_workbook函数 xlrd.open_workbook函数)

2) data.sheet_loaded() data.sheet_loaded())

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

4)获取sheets的几种方式

[2. xlrd操作Excel 【读取】](#2. xlrd操作Excel 【读取】)

[2.1 xlrd操作Excel的行](#2.1 xlrd操作Excel的行)

[2.2 xlrd操作Excel操作列](#2.2 xlrd操作Excel操作列)

[2.3 操作excel 单元格](#2.3 操作excel 单元格)

3.xlwt模块

[3.1 安装导入依赖](#3.1 安装导入依赖)

[3.2 xlwt的内容](#3.2 xlwt的内容)

1)创建工作簿

2)写入数据

3)写入样式格式化


一、xlrd和xrwt 操作Excel

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

1.xlrd模块

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

1.1 安装查看并导入依赖
python 复制代码
# 安装依赖
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函数

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

python 复制代码
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值等。

python 复制代码
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。

python 复制代码
#操作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。

python 复制代码
# 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。

python 复制代码
#操作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 安装导入依赖
python 复制代码
# 安装写入依赖 xlwt模块
pip install xlwt

#查看已安装模块
pip list

#导入xlwt模块
import xlwt

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

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

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

python 复制代码
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)写入数据

向工作簿中添加数据

python 复制代码
# 要添加的数据
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")

写入图片数据

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

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

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

python 复制代码
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的实际应用小实战项目放在下一章了。

相关推荐
用户277844910499312 小时前
借助DeepSeek智能生成测试用例:从提示词到Excel表格的全流程实践
人工智能·python
JavaEdge在掘金14 小时前
ssl.SSLCertVerificationError报错解决方案
python
我不会编程55515 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
李少兄15 小时前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
工业通讯探索者15 小时前
ProfiNet转CANopen协议转换网关驱动新能源汽车生产线多轴同步控制
自动化·工业物联网·协议转换网关·网关模块·总线协议
老歌老听老掉牙15 小时前
平面旋转与交线投影夹角计算
python·线性代数·平面·sympy
满怀101515 小时前
Python入门(7):模块
python
无名之逆15 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
你觉得20515 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
似水এ᭄往昔15 小时前
【C语言】文件操作
c语言·开发语言