python的openpyxl常见用法

openpyxl用于操作后缀名为.xlsx的excel表格文件,一个excel电子表格文档称为一个工作簿,每个工作簿可以包含多个表(也称为工作表),在excel中即为左下角的"Sheet1 Sheet2 Sheet3"。打开excel时出现的工作表称为活动表。
首先导入openpyxl import openpyxl

wb = openpyxl.load_workbook("example.xlsx")

调用load_workbook(),传入文件路径,导入工作簿,返回的是一个工作簿对象。

print(wb.get_sheet_names())

通过get_sheet_names()方法可以查看所有的工作表,返回的是列表(['Sheet1', 'Sheet2', 'Sheet3'])。

sheet = wb.get_sheet_by_name("Sheet1")

也可以通过get_sheet_by_name()的方法指定工作表名,或者通过sheet = wb.active获得活动表。
sheet是工作簿中的工作表,而工作表中的每个单元格称之为"Cell"。在xlsx中,我们可以通过行列索引访问相应的单元格。但是这里的列索引不是0、1、2……,而是字母A、B、C……,而且行索引的最小值是1并不是0。

print(sheet["A1"])

可以直接通过"A1"访问第一行第一列的单元格,这里A必须要放在1之前,返回的是一个Cell类型(<Cell 'Sheet1'.A1>)。

highest_row, highest_column = sheet.max_row, sheet.max_column

可以通过max_row和max_column两个sheet属性获取工作表的最大行列数。
每个Cell都有一个value属性,value中存放着单元格的值,除此之外还有row、column和coordinate属性。

cell = sheet["A1"]
print(cell.value, cell.row, cell.column, cell.coordinate)
2015-04-05 13:34:02 1 1 A1

通过打印出的结果,可以看出row代表单元格的行索引,column代表单元格的列索引,coordinate代表行列相结合的索引,这里的column并不是A字母索引而是数字索引。

wb = openpyxl.load_workbook("example.xlsx")
sheet = wb.active
print(sheet.cell(row=1, column=1).value)
2015-04-05 13:34:02

也可以对sheet调用cell方法,通过指定行列索引来获得相应的单元格。 from openpyxl.utils import get_column_letter, column_index_from_string ,从utils包中导入get_column_letter和column_index_from_string方法可以分别将列的数字索引转为字母索引,将字母索引转为数字索引。
在这里插入图片描述
在这里插入图片描述
要想获取sheet中的某一列的值可以这样做:

wb = openpyxl.load_workbook("example.xlsx")
sheet = wb.active
highest_row, highest_column = sheet.max_row, sheet.max_column
date, date_str = [], []
for r in range(1, highest_row+1):
    date.append(sheet.cell(row=r, column=1).value)
for d in date:
    date_str.append(d.strftime("%Y-%m-%d %H-%M-%S"))
print(date_str)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章