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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章