python使用openpyxl操作excel
定义
excel文件 : workbook
表 :worksheet
文件和表
*** 定义一个excel文件:***
from openpyxl import Workbook
wb = Workbook()
获取一个worksheet
ws = wb.active #*默认得到第一个表*
创建一个表
ws = wb.create_sheet() #在最后一个位置创建表
ws = wb.create_sheet(0) #在第一个位置创建表
更改表名
ws.title = 'sheetname'
更改表标签的背景色
ws.sheet_properties.tabColor = "1072BA"
通过表名获取一个表
ws = wb["tablename"]
获取一个表名
print(wb.get_sheet_names())
excel文件里的表标签可以迭代获取
for sheet in wb:
print(sheet.title)
单元格
访问单元格
cell = ws['A4'].value
改变单元格的值
ws['A4'] = 10
访问多个单元格
cell_range = ws['A1':'C2']
*其中cell_range是一个二维数组,容纳从A1到C2的一个单元格矩阵*
访问整列或者整行
ws.rows
((<Cell Sheet.A1>, <Cell Sheet.B1>, <Cell Sheet.C1>),(<Cell Sheet.A2>, <Cell Sheet.B2>, <Cell Sheet.C2>),(<Cell Sheet.A3>, <Cell Sheet.B3>, <Cell Sheet.C3>),(<Cell Sheet.A4>, <Cell Sheet.B4>, <Cell Sheet.C4>),(<Cell Sheet.A5>, <Cell Sheet.B5>, <Cell Sheet.C5>),(<Cell Sheet.A6>, <Cell Sheet.B6>, <Cell Sheet.C6>),(<Cell Sheet.A7>, <Cell Sheet.B7>, <Cell Sheet.C7>),(<Cell Sheet.A8>, <Cell Sheet.B8>, <Cell Sheet.C8>),(<Cell Sheet.A9>, <Cell Sheet.B9>, <Cell Sheet.C9>))
ws.columns
((<Cell Sheet.A1>,<Cell Sheet.A2>,<Cell Sheet.A3>,<Cell Sheet.A4>,<Cell Sheet.A5>,<Cell Sheet.A6>,...<Cell Sheet.B7>,<Cell Sheet.B8>,<Cell Sheet.B9>),(<Cell Sheet.C1>,<Cell Sheet.C2>,<Cell Sheet.C3>,<Cell Sheet.C4>,<Cell Sheet.C5>,<Cell Sheet.C6>,<Cell Sheet.C7>,<Cell Sheet.C8>,<Cell Sheet.C9>))
数据类型猜测
wb = Workbook(guess_types=True)
保存excel文件
wb = Workbook()
wb.save('balances.xlsx')
这个操作会覆盖原有的文件
读取excel文件
>>> from openpyxl import load_workbook
>>> wb2 = load_workbook('test.xlsx')
>>> print wb2.get_sheet_names()
['Sheet2', 'New Title', 'Sheet1']