文章目录
- 前言
- Python Excel库对比
- 一、Python xlrd 读取 操作Excel
- 1.1 xlrd模块介绍
- 1.2 安装xlrd模块
- 1.3 使用介绍
- 1.4 实战训练
- 二、Python xlwt 写入 操作Excel(仅限xls格式!)
- 2.1 pip安装xlwt
- 2.2 使用xlwt创建新表格并写入
- 2.3 xlwt 设置字体格式
- 2.4 xlwt 设置列宽
- 2.5 xlwt 设置行高
- 2.6 xlwt 合并列和行
- 2.7 xlwt 添加边框
- 2.8 xlwt为单元格设置背景色
- 2.9 xlwt设置单元格对齐
- 总结
- Python技术资源分享
- 1、Python所有方向的学习路线
- 2、学习软件
- 3、精品书籍
- 4、入门学习视频
- 5、实战案例
- 6、清华编程大佬出品《漫画看学Python》
- 7、Python副业兼职与全职路线
前言
- 很多人就要问学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、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
5、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
6、清华编程大佬出品《漫画看学Python》
用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。
7、Python副业兼职与全职路线
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取(安全链接,放心点击)