openpyxl是很强大的Python操作excel文件的程序包。这部分以及以后的内容是翻译的openpyxl的官方网站内容(因为原网站只有英文的),希望对大家能够有所帮助。
创建工作簿
创建工作簿或者选择一个工作簿是使用excel的第一步。openpyxl可以在不打开exce文件的情况下,就使用工作簿。
from openpyxl import Workbook
wb = Workbook()
Workbook的属性、函数以及方法有很多。最常用的一个是获得当前工作表:
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
#以下方法也可以
ws1 = wb['工作表']
ws指向的就是当前工作表。
创建工作表
当然也可以使用create_sheet()创建工作表:
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws1 = wb.create_sheet("Sheet1") #新建工作表在最后
ws2 = wb.create_sheet("工作表2",0) #新建工作表在最前
ws3 = wb.create_sheet("工作表3",-1) #新建工作表在倒数第二
ws4 = wb.create_sheet("工作表4",2) #在第二个位置,从零开始计数
print(wb.sheetnames)
输出的结果是:
['工作表2', 'Sheet', '工作表4', '工作表3', 'Sheet1']
工作表的名称可以用title属性直接设定,比如:
ws.title = "新工作表"
工作表的背景色可以通过Worksheet.sheet_properties.tabColor 属性更改,颜色是使用“RRGGBB”设定
ws.sheet_properties.tabColor = "1072BA"
openpyxl也支持复制工作表:
target = wb.copy_worksheet(ws)
需要注意的是,并不是源工作表的所有内容都会被拷贝到新的工作表中的。另外不能跨工作簿拷贝工作表。
访问单元格
访问单元格非常的简单,比如:
cell=ws['A1'] #读取单元格
ws['A2']="你好"
print(cell.style)
单元格对象有很多的属性,后面会逐一的讲解。
也可以使用下标范围来访问一批单元格:
cell=ws["A1:C4"]
colC = ws['C']
col_range = ws['C:D']
row10 = ws[10]
row_range = ws[5:10]
#行迭代方式
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
for cell in row:
print(cell)
#列迭代方式
for col in ws.iter_cols(min_row=1, max_col=3, max_row=2):
for cell in col:
print(cell)
#访问单元格数值
for row in ws.values:
for value in row:
print(value)
保存工作簿
保存工作簿的方法如下:
wb = Workbook()
wb.save('abc.xlsx')
需要注意的是,只能保存xlsx格式的excel文件。旧的xls文件不能保存
读取工作簿
wb = load_workbook('abc.xlsx')