xlrd库一般用于读取excel文件中的数据;
xlwt库用于将数据写入excel文件;
xlutils库通过复制一个副本文件进行操作后保存一个新文件,通过copy模块将xlrd.Book对象转换为xlwt.Workbook对象,从而实现了原始excel文件的编辑功能。
PS:一般如果数据量不是很大可以用这3个库完成读写更新,如果数据量很大直接用pandas库
2.读取数据
1)库的安装
pip install xlrd
2)支持xlsx、xls格式的excel表格
3)操作步骤:
打开工作薄(Workbook)
选择工作表(sheets)
操作单元格(cell)
import xlrd
wd = xlrd.open_workbook("D:\my_project\up_ver_sn_V1.xlsx")
sheet = wd.sheet_by_name("off")
rows = sheet.nrows
cols = sheet.ncols
rowData = sheet.row_values(** **行索引号** **)
colDate = sheet.col_values(** **列索引号** **)
for i in range(0, rows):
print(sheet.cell_value(i, 2))
a = sheet.row(0)[0]
a = sheet.cell(0,0)
a = sheet.col(0)[0]
3.写数据
1)库的安装
pip install xlwt
2)操作步骤:
新建工作薄(Workbook)
添加工作表(add_sheet)
写入数据(write)
保存工作薄(save)
3)创建样式:
style=xlwt.XFStyle()
font=xlwt.Font()
font.name='Times New Roman'
font.bold=True
style.font=font
sheet.write(0,1,'XXXx',style)
import xlwt
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('sheet名称')
worksheet.write(0, 0, label='key')
worksheet.write(0, 1, label='value')
worksheet.write(1, 0, label='XXXX')
worksheet.write(1, 1, label='YYYY')
workbook.save(file_name)
4.更新数据
1)库的安装
pip install xlutils
2)操作步骤:
打开需要更改的excel(Workbook)
将操作文件对象拷贝,变成workbook对象(copy)
获取工作表(sheet)
写入更新数据(write)
保存工作薄(save)
3)注意点
formatting_info默认为False,改成True可以将表格的格式、规则、宏等带过来
但是如果文件为xlsx格式时,formatting_info=True会抛出异常,而读取xls类型的文件时不存在此问题。
解决方式:
修改xlsx为xls(推荐)
import xlrd
import xlwt
from xlutils.copy import copy
old_excel = xlrd.open_workbook('test.xlsx', formatting_info=True)
new_excel = copy(old_excel)
ws = new_excel.get_sheet(0)
ws.write(0, 0, '第一行,第一列')
ws.write(0, 1, '第一行,第二列')
ws.write(0, 2, '第一行,第三列')
ws.write(1, 0, '第二行,第一列')
ws.write(1, 1, '第二行,第二列')
ws.write(1, 2, '第二行,第三列')
new_excel.save('test.xlsx')
复制代码