Python操作Excel之openpyxl
openpyxl是一个Python库,用来读写Excel2010 xlsx/xlsm/xltx/xltm类型文件。
openpyxl不能操作早期的xls格式的Excel文件,可以使用xlwings等其他库。
openpyxl是一个非标准的库,需要自行安装:pip install openpyxl
前提
既然要操作Excel,那么前提我们对Excel要有一个基本的了解,比如:
一个Excel工作簿(workbook)由一个或多个工作表(sheet组成),一个工作表(sheet)中又包含多个行(row)和列(column),每一行(row)或每一列(column)又是由多个单元格(cell)组成
创建
from openpyxl import Workbook
wb = Workbook()
ws = wb.create_sheet('first')
wb.save('Eric_01.xlsx')
wb.close()
Workbook对象提供了很多属性和方法,其中,大部分方法都与sheet有关
部分属性如下:
- active:获取当前活跃的Worksheet
- worksheets:以列表的形式返回所有的Worksheet(表格)
- read_only:判断是否以read_only模式打开Excel文档
- encoding:获取文档的字符集编码
- properties:获取文档的元数据,如标题,创建者,创建日期等
- sheetnames:获取工作簿中的表(列表)
部分方法如下:
- get_sheet_names:获取所有表格的名称(新版已经不建议使用,通过Workbook的sheetnames属性即可获取)
- get_sheet_by_name:通过表格名称获取Worksheet对象(新版也不建议使用,通过Worksheet[‘表名’]获取)
- get_active_sheet:获取活跃的表格(新版建议通过active属性获取)
- remove_sheet:删除一个表格
- create_sheet:创建一个空的表格
- copy_worksheet:在Workbook内拷贝表格
读取
from openpyxl import load_workbook
wb = load_workbook('Eric.xlsx')
print(wb.sheetnames)
sheet = wb['sheet1']
sheet = wb.active
sheet.dimensions
cell = sheet['A1']
cell = sheet.cell(row=3, column=4)
print(cell.value)
print(cell.row, cell.column, cell.coordinate)
cells = sheet['A1':'C3']
cells = sheet['A:C']
cells = sheet[2:5]
for cell in cells:
print(cell.value)
for row in sheet.iter_rows(min_row = 1, max_row = 10
min_col = 1, max_col = 26):
print(row)
for cell in row:
print(cell.value)
for row in sheet.rows:
print(row)
写入
有点晚了,后面补上~
|