如何用Python提高办公(Excel)效率?

这几天在家里利用网络视频教程学习了一下简单的Python爬虫,然后需要把爬取的数据保存到Excel表,就接触了一下 xlwt 这个Python库,不用不知道,一用吓一跳,当我写一个99乘法表,连带我导包只需要 7 行代码的时候,我才想起来,为啥那么多文员的招聘上写着 “会Python的优先” 了 ,想想语言里面的那些语法,再想想配合起来用,几万行数据也不过几行代码即可实现,那效率简直是快到令人难以呼吸啊!

准备xlwt库

Python里面经过多年沉淀下来的库也是数不胜数,并且很多库的功能都非常强大,我都觉得以后哪怕是一个简单的文员都需要掌握Python了,虽然现在还不算是硬性要求,但是这种趋势已经在社会上形成了,毕竟互联网时代是个快节奏时代,能有高效率的办公谁还喜欢低效率呢?

安装xlwt包

File ->> Setting ->> Project:Name ->> Project Interpreter ->> 右边 + 号 ->> 搜索xlwt ->> 选中xlwt ->> 左下角 Install Package ->> 等待安装完成
在这里插入图片描述
在这里插入图片描述

Python文件中导入包
import xlwt # 导入 xlwt 包

xlwt使用

xlwt库的使用也非常简单,简单的写入数据可以按照如下四步(一步一行代码)走:

创建WorkBook对象

创建WorkBook对象就约等于创建了一个Excel文件了,创建对象的时候只需要设置一下编码格式就行了,默认是ASCII,所以我们一般都需要设置一下 “UTF-8”

workBook = xlwt.Workbook(encoding="utf-8")  # 创建workBook对象

还有一个不常用的属性:压缩等级,直接不写就是默认 0

# style_compression 是表示设置压缩的等级
workBook = xlwt.Workbook(encoding="utf-8",style_compression=0)
创建Sheet

用过Excel的人应该都知道,一个xls(或xlsx)文件是可以有多个表的,当然可能我们很多时候习惯每个文件只有一个表有数据。这里只需调用WorkBook的 .add_sheet() 方法,设置一下表名,即可创建一个表,当然我们默认是设置一下覆盖属性:cell_overwrite_ok=True 表示可以覆盖原有数据进行写入操作

workSheet = workBook.add_sheet("sheet1",cell_overwrite_ok=True)
添加数据

文件有了,表有了,自然就剩下添加数据了,不然咱建个空文件、空表干啥呢?右键新建它不香嘛?写入数据的操作也是简单至极,调用workSheet的 .write() 方法,填入 行、列、数据 三个参数即可插入数据(作为一个程序猿,第一个数据当然要是神圣的:Hello World !)

workSheet.write( 0, 0,"Hello Wolrd !")
保存文件

文件创建了,并不代表保存了,所以在写入完数据以后需要进行文件的保存(这里是保存在当前Python文件的同一个文件夹下)

workBook.save("Hello World.xls")

拓展

批量插入

利用语法批量插入数据,可能很多小伙伴都会了,但是我还是死皮赖脸说一说吧!

比如这样,就是一个99乘法表的数据,逻辑是和学语言的时候打印99乘法表一样的,只不过这里把打印变成了写入Excel

for i in range(0, 9):
    for j in range(0, i+1):
        workSheet99.write(i, j, "%d * %d = %d" % (i+1, j+1, ((i+1) * (j+1))))

当然,还有很多很多操作,利用语法去实现,你会发现批量插入Excel数据如此简单,对于很多经常使用Excel批量插入或者处理数据人,感觉世界都轻松了起来!或许这就是程序改变世界吧!也验证了那句:人生苦短,我用Python!

报错注意

如果你在进行这一系列操作的时候,报错了,点击错误链接跳转的是保存文件那一行,并且是这样的错误,那么恭喜你,没关Excel(我经常这样),因为你打开了这个数据表,他就被WPS之类的软件占用了,程序就没法对其进行读写操作了,所以这点是需要注意的!

PermissionError: [Errno 13] Permission denied: 'xxxxx.xls'

文章可能写得特别基础,没有太多的技术含量,但是你既然看到了这段话,就说明你看完了本篇文章!点赞!关注!感谢!

猜你喜欢

转载自blog.csdn.net/qq_44720366/article/details/106152028