XLWT简介
xlwt是python处理excle的一个库。只能写不能读。如果想要读的话还需要一个xlrd,这里主要介绍xlwt的使用,xlwt只能写后缀为 ‘.xls’ 的excel文档,而pandas却是两着( ‘.xls’ and ‘.xlsx’)都可
xlwt的安装
pip install xlwt
如果上面的安装不上的话,可以使用这个
pip install -i https://pypi.douban.com/simple xlwt
使用xlwt
模块导入
import xlwt
创建Excel文件
workbook = xlwt.Workbook()
Workbook里边有一个encoding的属性,默认是ASCII,如果报出’
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe4 in position 0: ordinal not in range(128)'的错,可以把ASCII改为UTF-8
workbook = xlwt.Workbook(encoding='utf-8')
写入数据
写入数据呢,其实就是调用了 ‘write’ 这个方法,而在pandas中调用的是to_write。使用pandas的时候可以批量的插入数据使用
with pd.ExcelWriter("excel 样例.xlsx") as writer:
data.to_excel(writer, sheet_name="这是第一个sheet")
但是Xlwt是不可以,只能自己一条条写入,通过 ‘write’ ,第一个参数表示第几行,第二个参数表示第几列,第三个参数表示要填的值
aaa = workbook.add_sheet(sheetname='aaa')
aaa.write(0,0,'1') # 在一个sheet_name 为 aaa 的excel的第1行第1列插入的值是1
要加表头的话,可以这样写
aaa = ex.add_sheet(sheetname='aaa')
header = ['id','name','age']
for i,j in enumerate(header):
aaa.write(0,i,j)
结果:
添加内容
result =[
{"id": "1", "name": "张三", "age": "18"},
{"id": "2", "name": "李四", "age": "19"},
{"id": "3", "name": "王五", "age": "20"}
]
for row, row_data in enumerate(result, start=1):
aaa.write_row(row, 0, [row])
values = list(row_data.values())
aaa.write_row(row, 1, values)
结果:
总结
我个人还是比较喜欢用Pandas来操作Excel的,Xlwt也是很不错。根据个人的喜好。可以多选择。Python中除了这两个还有其他的库可以来操作Excel的。
比如:
- xlrd库:只能读,不能写。可以和xlwt配合使用
- xlwt库:只能写,不能读,且不支持 ‘.xlsx’ 文件
- xlutils库:是xlwt和xlrd的结合体,可读可写可修改,且不支持.xlsx文件。
- pandas库:可读可写,但不可修改。
- openpyxl库:可读可写可修改,但不支持MAC系统,不支持.xls文件。
- win32com库:可读可写可修改,并支持各类Excel文件。