大家好,我是Kuls。
一个不爱内卷,热爱自由的程序员。
上期我们主要讲了上面是自动化、自动化能做什么以及excel自动化相关的知识。同时也给大家分享了34款自动化第三方库。
今天我们仍然来讲讲Excel相关的自动化知识。
在上期中我们更多的是去讲excel相关的读取操作,熟悉编程的读者应该知道增删改查是我们的日常工作。
这个也不例外,所以我们得来学学增删改怎么操作。
其实与xlrd对应的一个库就是xlwt,其实很好区分,r就是read即读取,w就是write即写入。
按照正常流程,我们自动化里,如果想要去写入一个excel文件,那么首先肯定是得创建一个excel文件,那么需要我们手动创建吗?
当然不需要。
只需要几行代码就能够搞定:
import xlwt# 新建一个Workbook对象new_excel = xlwt.Workbook()# 添加一个工作表sheet1 = new_excel.add_sheet('Sheet1')
其中Workbook对象可以简单理解为excel对象。
到了这一步基本上excel就创建完毕,并且我们还创建了一个工作表,因为工作表是我们操作的环境。
那么如何添加数据呢?
sheet1.write(0, 0, 'Python进击者')
简单一步即可搞定,最后保存文件:
new_excel.save('kuls.xls')
大功告成!简单粗暴,我们来看下效果:
可以看到没毛病,到这大家可以跟着我一起敲一遍代码,这样你就能够亲自去体验一下。
import xlwt# 新建一个Workbook对象new_excel = xlwt.Workbook()# 添加一个工作表sheet1 = new_excel.add_sheet('Sheet1')sheet1.write(0, 0, 'Python进击者')new_excel.save('kuls.xls')
完整代码如上。
xlwt其实不是完美的,它有很多不太给力的地方,这里给大家列出来几个:
1、如果使用xlwt来操作已经存在的excel文件,那么会报错。
2、如果对相同的单元格进行重复的赋值操作,也会报错。
3、xlwt只支持生成xls格式的文件,不支持xlsx。
可能大家看了这些缺点觉得很不可思议,那这些操作要怎么去实现呢?
大家继续关注后面的文章,会有解答。
虽然xlwt缺点比较多,但是我们还是需要去了解,毕竟创建一个excel还是比较方便的。
了解完了增,接下来了解一下改。
因为我们上面说了如果使用xlwt来操作已经存在的excel文件会报错,但是我们修改肯定是从已经存在的文件中修改。
这怎么解决呢?
肯定xlwt是无法满足我们的需求,此时xlutils就帮了个大忙。
import xlrdfrom xlutils.copy import copy# 将刚刚生成的xls文件打开kuls = xlrd.open_workbook('kuls.xls',formatting_info=True)# 获取文件中工作表sheet1 = kuls.sheets()[0]# 复制kuls对象kuls1 = copy(kuls)# 拿到复制后对象的sheetkuls1_sheet = kuls1.get_sheet(0)# 操作复制后的sheetkuls1_sheet.write(0, 0, 'Python进击者1')kuls1.save('kuls.xls')
上面的代码就是一个修改的案例,其中formatting_info是将字体样式一起复制。非常的简单,本质上就是将原excel复制一份,对复制的这一份进行修改,然后再重新写入到原文件当中。
其实关于xlwt相关的知识差不多到这里了,但是xlwt只支持xls文件这个点大家也是需要知道的。
那么我要操作xlsx文件该怎么做呢?
下一期文章将会介绍一个更厉害的库来操作xlsx,大家敬请关注!!!