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

相关推荐
cuber膜拜2 分钟前
jupyter使用 Token 认证登录
ide·python·jupyter
张登杰踩1 小时前
pytorch2.5实例教程
pytorch·python
codists1 小时前
《CPython Internals》阅读笔记:p353-p355
python
Change is good1 小时前
selenium定位元素的方法
python·xpath定位
Change is good1 小时前
selenium clear()方法清除文本框内容
python·selenium·测试工具
漫漫进阶路4 小时前
VS C++ 配置OPENCV环境
开发语言·c++·opencv
BinaryBardC5 小时前
Swift语言的网络编程
开发语言·后端·golang
code_shenbing6 小时前
基于 WPF 平台使用纯 C# 制作流体动画
开发语言·c#·wpf
邓熙榆6 小时前
Haskell语言的正则表达式
开发语言·后端·golang
贾贾20236 小时前
配电自动化系统“三区四层”数字化架构
运维·科技·架构·自动化·能源·制造·智能硬件