1、openpyxl模块只能作用于xlsx文件,不能操作xls文件。
# 将xls转换为xlsx可以用pywin32模块
import win32com.client as win32
import os
filename = r'test.xls'
Excelapp = win32.gencache.EnsureDispatch('Excel.Application')
workbook = Excelapp.Workbooks.Open(filename)
workbook.SaveAs(filename.replace('xls', 'xlsx'), FileFormat=51)
workbook.Close()
Excelapp.Application.Quit()
# 删除原文件
os.remove(filename)
2 、创建工作簿
import openpyxl
# 创建工作簿
workbook = openpyxl.Workbook()
# 创建工作表
sheet = workbook.create_sheet("test", 0)
# 保存工作簿
workbook.save(r'C:\Users\Administrator\Desktop\test.xlsx')
# 关闭
workbook.close()
openpyxl 保存文件默认是直接替换,如果想保存不同版本文件需要修改文件名或者加时间戳
3、 打开工作簿、复制工作表
# 打开Excle的工作簿
f = openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\test.xlsx')
# 复制test工作表
f.copy = f.copy_worksheet(f['test'])
# 修改复制工作表的名称
f.copy.title = "123"
# 保存工作表
f.save(r'C:\Users\Administrator\Desktop\test.xlsx')
4、向工作表里写入数据
# 打开Excle的工作簿
f = openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\test.xlsx')
# 设置工作表
sheet = f['test']
sheet.cell(1, 1, 'python') # 多个数据可以使用循环添加
f.save(r'C:\Users\Administrator\Desktop\test.xlsx')
5、读取Excel中指定的行和列
# 打开工作簿
f = openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\test.xlsx')
# 指定工作表
sheet = f['test']
# 指定的行和列
rows = sheet.iter_rows(min_row=1, max_row=10, min_col=1, max_col=5, values_only=True)
for i in rows:
print(i)
6、读取工作表中所有的数据
# 打开工作簿
f = openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\test.xlsx')
# 指定工作表
sheet = f['test']
# 指定的行和列
for i in sheet.rows:
for j in i:
print(j.coordinate, j.value, end=" ")
print()
结果: