每日一包 - xlwt

133 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第27天,点击查看活动详情

介绍

本文主要介绍xlwt,前面有文章介绍了xlrd以及openpyxlxlwt主要对xls文件进行写操作并且效率较高,但是不能执行xlsx文件,同样先将这三个模块进行对比。

  • openyxl:可以对xlsx、xlsm文件进行读、写操作,主要对Excel2007年之后的版本(.xlsx)
  • xlrd:可以对xlsx、xls、xlsm文件进行读操作且效率高
  • xlwt:主要对xls文件进行写操作且效率高,但是不能执行xlsx文件

通过对比,可以看到在效率上而言,xlrd&xlwtopenyxl要高效得多。而写入数据方面上而言,openyxl又比较贴近我们的日常所需,所以两种方式来处理Excel各有千秋。

安装和使用

安装

pip install xlwt

使用

首先需要通过xlwt模块创建一个新的excel文件:

import xlwt
df2 = xlwt.Workbook()

在一个excel文件中继续创建sheet,也就是工作表:

# name就是excel文件中sheet的名称
table2=df2.add_sheet('name')

单元格创建成功之后就可以向单元格中写入数据,写入数据需要向指定单元格中写入数据:

# 前两个参数对应单元格的第几行第几列,代表的是单元格的位置,第三个参数就是需要向单元格中写入的数据,可以是字符串和数字
table2.write(0,0,'Python')

需要注意的是,如果是对同一个单元格重复操作,会让Python报错(多次输入错误),所以如果想要取消这个功能,则添加`cell_overwrite_ok新建工作表的代码里面,表示当对某一个单元格重复操作时会进行覆盖。

table2=df2.add_sheet('name',cell_overwrite_ok=True)

对单元格操作之后需要进行保存文件的操作,在文章开头的时候也提到过,就是xlwt既支持xls格式的文件,对xlsx文件是不支持的,这也是该模块的一个缺陷,因此在保存文件时文件格式只能是xls格式

df2.save('data2.xls')

我们也可以通过该模块提供的一些类对单元格的样式进行修改:

style=xlwt.XFStyle()  # 初始化样式font=xlwt.Font()  # 为样式创建字体font.name='name Times New Roman' # 指定字体名称font.bold=True  # 是否加粗style.font=font  # 将字体指定为上述字体名称
​
sheet.write(0,1,'Python',style)  # 使用指定的样式向指定的单元格写入数据

总结

结合xlrdxlwt这两个模块,可以对excel文件进行读写操作,当然也可以选择openpyxl,在实际开发环境中,需要根据自己的实际业务需求进行选择。