快用Python帮你女朋友实现办公自动化吧(附源代码)

今天给大家分享一篇 Python 自动化办公干货,内容很干,Excel操作大全,可以码住细品~

0. Python Excel库对比

我们先来看一下python中能操作Excel的库对比(一共九个库):

1. 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



pip install xlrd  



我这里是anaconda自带有xlrd,所以提示已经安装:

1.3 使用介绍

  1. 常用单元格的数据类型
  • empty(空的)

  • string(text)

  • number

  • date

  • boolean

  • error

  • blank(空白表格)

  1. 导入模块


import xlrd  



  1. 打开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\_name or indx)    # 检查某个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模块进行读取:



import xlrd  
  
xlsx = xlrd.open\_workbook('./3\_1 xlrd 读取 操作练习.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)) for i in range(1, nrows)\]  
print("第4列所有的值:",name\_list)  



打印结果:

列表生成式介绍:

列表生成式学习链接:

https://www.liaoxuefeng.com/wiki/1016959663602400/1017317609699776

2. Python xlwt 写入 操作Excel(仅限xls格式!)

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

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

2.1 pip安装xlwt



pip install xlwt  



我这里是anaconda自带有xlwt,所以提示已经安装:

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

一开始目录下只有这两个文件:

编写xlwt新表格写入程序:



# 3.2.2 使用xlwt创建新表格并写入  
def fun3\_2\_2():  
    # 创建新的workbook(其实就是创建新的excel)  
    workbook = xlwt.Workbook(encoding= 'ascii')  
  
    # 创建新的sheet表  
    worksheet = workbook.add\_sheet("My new Sheet")  
  
    # 往表格写入内容  
    worksheet.write(0,0, "内容1")  
    worksheet.write(2,1, "内容2")  
  
    # 保存  
    workbook.save("新创建的表格.xls")  



生成的表格内容如下:

2.3 xlwt 设置字体格式

程序示例:



# 3.2.3 xlwt设置字体格式  
def fun3\_2\_3():  
    # 创建新的workbook(其实就是创建新的excel)  
    workbook = xlwt.Workbook(encoding= 'ascii')  
  
    # 创建新的sheet表  
    worksheet = workbook.add\_sheet("My new Sheet")  
  
    # 初始化样式  
    style = xlwt.XFStyle()  
  
    # 为样式创建字体  
    font = xlwt.Font()  
    font.name = 'Times New Roman'   #字体  
    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 设置列宽  
def fun3\_2\_4():  
    # 创建新的workbook(其实就是创建新的excel)  
    workbook = xlwt.Workbook(encoding= 'ascii')  
  
    # 创建新的sheet表  
    worksheet = workbook.add\_sheet("My new Sheet")  
  
    # 往表格写入内容  
    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 设置行高  
def fun3\_2\_5():  
    # 创建新的workbook(其实就是创建新的excel)  
    workbook = xlwt.Workbook(encoding= 'ascii')  
  
    # 创建新的sheet表  
    worksheet = workbook.add\_sheet("My new Sheet")  
  
    # 往表格写入内容  
    worksheet.write(0,0, "内容1")  
    worksheet.write(2,1, "内容2")  
  
    # 设置行高  
    style = xlwt.easyxf('font:height 360;')  # 18pt,类型小初的字号  
    row = worksheet.row(0)  
    row.set\_style(style)  
  
    # 保存  
    workbook.save("新创建的表格.xls")  



效果如下:

2.6 xlwt 合并列和行

程序示例:



# 3.2.6 合并列和行  
def fun3\_2\_6():  
    # 创建新的workbook(其实就是创建新的excel)  
    workbook = xlwt.Workbook(encoding= 'ascii')  
  
    # 创建新的sheet表  
    worksheet = workbook.add\_sheet("My new Sheet")  
  
    # 往表格写入内容  
    worksheet.write(0,0, "内容1")  
      
    # 合并 第1行到第2行 的 第0列到第3列  
    worksheet.write\_merge(1, 2, 0, 3, 'Merge Test')  
  
    # 保存  
    workbook.save("新创建的表格.xls")  



效果如下:

2.7 xlwt 添加边框

程序示例:



# 3.2.7 添加边框  
def fun3\_2\_7():  
    # 创建新的workbook(其实就是创建新的excel)  
    workbook = xlwt.Workbook(encoding= 'ascii')  
  
    # 创建新的sheet表  
    worksheet = workbook.add\_sheet("My new Sheet")  
  
    # 往表格写入内容  
    worksheet.write(0,0, "内容1")  
      
    # 设置边框样式  
    borders = xlwt.Borders()  # Create Borders  
      
    # May be:   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, or 0x00 through 0x0D.  
    # 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()  # Create Style  
    style.borders = borders  # Add Borders to Style  
      
    worksheet.write(0, 0, '内容1', style)  
  
    worksheet.write(2,1, "内容2")  
  
    # 保存  
    workbook.save("新创建的表格.xls")  



效果如下:

2.8 xlwt为单元格设置背景色

程序示例:



# 设置单元格背景色  
def fun3\_2\_8():  
    # 创建新的workbook(其实就是创建新的excel)  
    workbook = xlwt.Workbook(encoding= 'ascii')  
  
    # 创建新的sheet表  
    worksheet = workbook.add\_sheet("My new Sheet")  
  
    # 往表格写入内容  
    worksheet.write(0,0, "内容1")  
  
    # 创建样式  
    pattern = xlwt.Pattern()  
      
    # May be: NO\_PATTERN, SOLID\_PATTERN, or 0x00 through 0x12  
    pattern.pattern = xlwt.Pattern.SOLID\_PATTERN  
      
    # May be: 8 through 63. 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow,  
    # 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow ,  
    # almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on...  
    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 右端对齐

程序示例:



# 设置单元格对齐  
def fun3\_2\_9():  
    # 创建新的workbook(其实就是创建新的excel)  
    workbook = xlwt.Workbook(encoding= 'ascii')  
  
    # 创建新的sheet表  
    worksheet = workbook.add\_sheet("My new Sheet")  
  
    # 往表格写入内容  
    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")  



效果如下:

pandas功能非常强大,快用Python帮你女朋友实现办公自动化吧

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

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

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

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

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值