前言

  • 很多人就要问学python自动化办公有什么好处?
    1、符合减少重复劳动,提升工作效率,是很多职场人员想要学习Python的出发点。
    2、能磁盘文件的整理、使用Python操作Excel,Word,PPT,PDF文件等。
    3、你只需要花上几分钟编写一个简单的程序,这些枯燥无聊的工作会很快被计算机完成,就能放双手,做职场高手。
    在这里插入图片描述
    在这里插入图片描述

Python Excel库对比

我们先来看一下python中能操作Excel的库对比(一共九个库):
在这里插入图片描述

一、Python xlrd 读取 操作Excel

1.1 xlrd模块介绍

(1)什么是xlrd模块?

python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。

(2)为什么使用xlrd模块?

在UI自动化或者接口自动化中数据维护是一个核心,所以此模块非常实用。

xlrd模块可以用于读取Excel的数据,速度非常快,推荐使用!

官方文档:https://xlrd.readthedocs.io/en/latest/

1.2 安装xlrd模块

到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。

或者在cmd窗口 pip install xlrd

pipinstallxlrd

我这里是anaconda自带有xlrd,所以提示已经安装:
在这里插入图片描述

1.3 使用介绍

1.常用单元格的数据类型

empty(空的)

string(text)

number

date

boolean

error

blank(空白表格)
导入模块

importxlrd

打开Excel文件读取数据

data=xlrd.open_workbook(filename)#文件名以及路径,如果路径或者文件名有中文给前面加一个r

1.常用的函数

excel中最重要的方法就是book和sheet的操作

(1)获取book(excel文件)中一个工作表

table=data.sheets()[0]#通过索引顺序获取
table=data.sheet_by_index(sheet_indx)#通过索引顺序获取
table=data.sheet_by_name(sheet_name)#通过名称获取

#以上三个函数都会返回一个xlrd.sheet.Sheet()对象

names=data.sheet_names()#返回book中所有工作表的名字
data.sheet_loaded(sheet_nameorindx)#检查某个sheet是否导入完毕

(2) 行的操作

nrows=table.nrows
#获取该sheet中的行数,注,这里table.nrows后面不带().

table.row(rowx)
#返回由该行中所有的单元格对象组成的列表,这与tabel.raw()方法并没有区别。

table.row_slice(rowx)
#返回由该行中所有的单元格对象组成的列表

table.row_types(rowx,start_colx=0,end_colx=None)
#返回由该行中所有单元格的数据类型组成的列表;
#返回值为逻辑值列表,若类型为empy则为0,否则为1

table.row_values(rowx,start_colx=0,end_colx=None)
#返回由该行中所有单元格的数据组成的列表

table.row_len(rowx)
#返回该行的有效单元格长度,即这一行有多少个数据
在这里插入图片描述
(3)列(colnum)的操作

ncols=table.ncols
#获取列表的有效列数

table.col(colx,start_rowx=0,end_rowx=None)
#返回由该列中所有的单元格对象组成的列表

table.col_slice(colx,start_rowx=0,end_rowx=None)
#返回由该列中所有的单元格对象组成的列表

table.col_types(colx,start_rowx=0,end_rowx=None)
#返回由该列中所有单元格的数据类型组成的列表

table.col_values(colx,start_rowx=0,end_rowx=None)
#返回由该列中所有单元格的数据组成的列表
在这里插入图片描述
(4)单元格的操作

table.cell(rowx,colx)
#返回单元格对象

table.cell_type(rowx,colx)
#返回对应位置单元格中的数据类型

table.cell_value(rowx,colx)
#返回对应位置单元格中的数据

1.4 实战训练

我们先在表格放入以下数据,点击保存:
在这里插入图片描述
使用xlrd模块进行读取:

importxlrd

xlsx=xlrd.open_workbook(‘./3_1xlrd读取操作练习.xlsx’)

#通过sheet名查找:xlsx.sheet_by_name(“sheet1”)
#通过索引查找:xlsx.sheet_by_index(3)
table=xlsx.sheet_by_index(0)

#获取单个表格值(2,1)表示获取第3行第2列单元格的值
value=table.cell_value(2,1)
print(“第3行2列值为”,value)

#获取表格行数
nrows=table.nrows
print(“表格一共有”,nrows,“行”)

#获取第4列所有值(列表生成式)
name_list=[str(table.cell_value(i,3))foriinrange(1,nrows)]
print(“第4列所有的值:”,name_list)

打印结果:
在这里插入图片描述
列表生成式介绍:
在这里插入图片描述
列表生成式学习链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017317609699776

二、Python xlwt 写入 操作Excel(仅限xls格式!)

xlwt可以用于写入新的Excel表格或者在原表格基础上进行修改,速度也很快,推荐使用!
https://xlwt.readthedocs.io/en/latest/

2.1 pip安装xlwt

pipinstallxlwt

我这里是anaconda自带有xlwt,所以提示已经安装:
在这里插入图片描述

2.2 使用xlwt创建新表格并写入

一开始目录下只有这两个文件:
在这里插入图片描述
编写xlwt新表格写入程序:

#3.2.2使用xlwt创建新表格并写入
deffun3_2_2():
#创建新的workbook(其实就是创建新的excel)
workbook=xlwt.Workbook(encoding=‘ascii’)

#创建新的sheet表
worksheet=workbook.add_sheet(“MynewSheet”)

#往表格写入内容
worksheet.write(0,0,“内容1”)
worksheet.write(2,1,“内容2”)

#保存
workbook.save(“新创建的表格.xls”)
在这里插入图片描述
生成的表格内容如下:
在这里插入图片描述

2.3 xlwt 设置字体格式

程序示例:

#3.2.3xlwt设置字体格式
deffun3_2_3():
#创建新的workbook(其实就是创建新的excel)
workbook=xlwt.Workbook(encoding=‘ascii’)

#创建新的sheet表
worksheet=workbook.add_sheet(“MynewSheet”)

#初始化样式
style=xlwt.XFStyle()

#为样式创建字体
font=xlwt.Font()
font.name=‘TimesNewRoman’#字体
font.bold=True#加粗
font.underline=True#下划线
font.italic=True#斜体

#设置样式
style.font=font

#往表格写入内容
worksheet.write(0,0,“内容1”)
worksheet.write(2,1,“内容2”,style)

#保存
workbook.save(“新创建的表格.xls”)

效果如下:
在这里插入图片描述

2.4 xlwt 设置列宽

xlwt中列宽的值表示方法:默认字体0的1/256为衡量单位。

xlwt创建时使用的默认宽度为2960,既11个字符0的宽度

所以我们在设置列宽时可以用如下方法:

width = 256 * 20 256为衡量单位,20表示20个字符宽度

程序示例:

#3.2.4设置列宽
deffun3_2_4():
#创建新的workbook(其实就是创建新的excel)
workbook=xlwt.Workbook(encoding=‘ascii’)

#创建新的sheet表
worksheet=workbook.add_sheet(“MynewSheet”)

#往表格写入内容
worksheet.write(0,0,“内容1”)
worksheet.write(2,1,“内容2”)

#设置列宽
worksheet.col(0).width=256*20

#保存
workbook.save(“新创建的表格.xls”)

效果如下:
在这里插入图片描述

2.5 xlwt 设置行高

在xlwt中没有特定的函数来设置默认的列宽及行高

行高是在单元格的样式中设置的,你可以通过自动换行通过输入文字的多少来确定行高

程序示例:

#3.2.5设置行高
deffun3_2_5():
#创建新的workbook(其实就是创建新的excel)
workbook=xlwt.Workbook(encoding=‘ascii’)

#创建新的sheet表
worksheet=workbook.add_sheet(“MynewSheet”)

#往表格写入内容
worksheet.write(0,0,“内容1”)
worksheet.write(2,1,“内容2”)

#设置行高
style=xlwt.easyxf(‘font:height360;’)#18pt,类型小初的字号
row=worksheet.row(0)
row.set_style(style)

#保存
workbook.save(“新创建的表格.xls”)

效果如下:
在这里插入图片描述

2.6 xlwt 合并列和行

程序示例:

#3.2.6合并列和行
deffun3_2_6():
#创建新的workbook(其实就是创建新的excel)
workbook=xlwt.Workbook(encoding=‘ascii’)

#创建新的sheet表
worksheet=workbook.add_sheet(“MynewSheet”)

#往表格写入内容
worksheet.write(0,0,“内容1”)

#合并第1行到第2行的第0列到第3列
worksheet.write_merge(1,2,0,3,‘MergeTest’)

#保存
workbook.save(“新创建的表格.xls”)

效果如下:
在这里插入图片描述

2.7 xlwt 添加边框

程序示例:

#3.2.7添加边框
deffun3_2_7():
#创建新的workbook(其实就是创建新的excel)
workbook=xlwt.Workbook(encoding=‘ascii’)

#创建新的sheet表
worksheet=workbook.add_sheet(“MynewSheet”)

#往表格写入内容
worksheet.write(0,0,“内容1”)

#设置边框样式
borders=xlwt.Borders()#CreateBorders

#Maybe:NO_LINE,THIN,MEDIUM,DASHED,DOTTED,THICK,DOUBLE,HAIR,
#MEDIUM_DASHED,THIN_DASH_DOTTED,MEDIUM_DASH_DOTTED,THIN_DASH_DOT_DOTTED,
#MEDIUM_DASH_DOT_DOTTED,SLANTED_MEDIUM_DASH_DOTTED,or0x00through0x0D.
#DASHED虚线
#NO_LINE没有
#THIN实线

borders.left=xlwt.Borders.DASHED
borders.right=xlwt.Borders.DASHED
borders.top=xlwt.Borders.DASHED
borders.bottom=xlwt.Borders.DASHED
borders.left_colour=0x40
borders.right_colour=0x40
borders.top_colour=0x40
borders.bottom_colour=0x40

style=xlwt.XFStyle()#CreateStyle
style.borders=borders#AddBorderstoStyle

worksheet.write(0,0,‘内容1’,style)

worksheet.write(2,1,“内容2”)

#保存
workbook.save(“新创建的表格.xls”)

效果如下:在这里插入图片描述

2.8 xlwt为单元格设置背景色

程序示例:

#设置单元格背景色
deffun3_2_8():
#创建新的workbook(其实就是创建新的excel)
workbook=xlwt.Workbook(encoding=‘ascii’)

#创建新的sheet表
worksheet=workbook.add_sheet(“MynewSheet”)

#往表格写入内容
worksheet.write(0,0,“内容1”)

#创建样式
pattern=xlwt.Pattern()

#Maybe:NO_PATTERN,SOLID_PATTERN,or0x00through0x12
pattern.pattern=xlwt.Pattern.SOLID_PATTERN

#Maybe:8through63.0=Black,1=White,2=Red,3=Green,4=Blue,5=Yellow,
#6=Magenta,7=Cyan,16=Maroon,17=DarkGreen,18=DarkBlue,19=DarkYellow,
#almostbrown),20=DarkMagenta,21=Teal,22=LightGray,23=DarkGray,thelistgoeson…
pattern.pattern_fore_colour=5
style=xlwt.XFStyle()
style.pattern=pattern

#使用样式
worksheet.write(2,1,“内容2”,style)

效果如下:在这里插入图片描述

2.9 xlwt设置单元格对齐

使用xlwt中的Alignment来设置单元格的对齐方式,其中horz代表水平对齐方式,vert代表垂直对齐方式。

VERT_TOP = 0x00 上端对齐
VERT_CENTER = 0x01 居中对齐(垂直方向上)
VERT_BOTTOM = 0x02 低端对齐
HORZ_LEFT = 0x01 左端对齐
HORZ_CENTER = 0x02 居中对齐(水平方向上)
HORZ_RIGHT = 0x03 右端对齐

程序示例:

#设置单元格对齐
deffun3_2_9():
#创建新的workbook(其实就是创建新的excel)
workbook=xlwt.Workbook(encoding=‘ascii’)

#创建新的sheet表
worksheet=workbook.add_sheet(“MynewSheet”)

#往表格写入内容
worksheet.write(0,0,“内容1”)

#设置样式
style=xlwt.XFStyle()
al=xlwt.Alignment()
#VERT_TOP=0x00上端对齐
#VERT_CENTER=0x01居中对齐(垂直方向上)
#VERT_BOTTOM=0x02低端对齐
#HORZ_LEFT=0x01左端对齐
#HORZ_CENTER=0x02居中对齐(水平方向上)
#HORZ_RIGHT=0x03右端对齐
al.horz=0x02#设置水平居中
al.vert=0x01#设置垂直居中
style.alignment=al

#对齐写入
worksheet.write(2,1,“内容2”,style)

#保存
workbook.save(“新创建的表格.xls”)

效果如下:在这里插入图片描述


总结

人生苦短,我用Python。
在这里插入图片描述


Python技术资源分享

小编是一名Python开发工程师,自己整理了一套 【最新的Python系统学习教程】,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。

保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

如果你是准备学习Python或者正在学习,下面这些你应该能用得上:

1、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

2、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

在这里插入图片描述

3、精品书籍

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

在这里插入图片描述

4、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

img

5、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

6、清华编程大佬出品《漫画看学Python》

用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。

在这里插入图片描述

7、Python副业兼职与全职路线

在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取安全链接,放心点击

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐