xlutils的使用
导语
xlrd和xlwt模块主要是针对excel表格的读取和写入,但是一些操作和处理数据的操作还是需要根据xlutils这个模块来实现。
1、拷贝原文件
import xlrd
from xlutils.copy import copy
workbook = xlrd.open_workbook('test.xlsx') # 打开工作薄
new_workbook = copy(workbook) # 将获取的xlrd文件对象,拷贝为xlwt对象
new_workbook.save('new_test.xlsx') # 保存工作薄
2、拷贝前获取原工作薄的信息
workbook = xlrd.open_workbook('test.xlsx') # 打开工作簿
sheets = workbook.sheet_names() # 获取工作簿中的所有工作表名字,形成列表元素
worksheet = workbook.sheet_by_name(sheets[0]) # 通过sheets[0]工作表名称获取工作簿中所有工作表中的的第一个工作表
rows_old = worksheet.nrows # 获取第一个工作表中已存在的数据的行数
print(sheets, sheets[0], worksheet, worksheet.nrows)
3、拷贝后获取新工作薄的信息
workbook = xlrd.open_workbook('test.xlsx') # 打开工作簿
new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象
new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个工作表对象
print(new_worksheet, new_workbook, new_worksheet.name) # 有时间整理下工作表对象的方法,工作表可以.name
4、拷贝后直接修改文件内容
# 打开想要更改的excel文件
old_excel = xlrd.open_workbook('test.xlsx', formatting_info=True)
# 将操作文件对象拷贝,变成可写的workbook对象
new_excel = copy(old_excel)
# 获得第一个sheet的对象
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, '第二行,第三列')
# 另存为excel文件,并将文件命名,可以重新命名,应该也可以覆盖掉
new_excel.save('new_test_1.xlsx')
5、获取所有单元格索引坐标
workbook = xlrd.