Python xlwings 调用Excel的工具.pdf
(00)Python 使用讀寫excel 檔案
Python 使用openpyxl 讀寫excel 檔案
這是一個協力廠商類別庫,可以處理 xlsx 格式的Excel 檔案 。pip install
openpyxl 安裝。如果使用Aanconda ,應該自帶了。
讀取Excel 檔案
需要導入相關函數。
1. from openpyxl import load_workbook
2.
3. # 默認可讀寫,若有需要可以指定write_only 和read_only 為True
4. wb = load_workbook ('mainbuilding33.xlsx')
默認打開的檔案為可讀寫,若有需要可以指定參數 read_only 為 True 。
獲取工作表--Sheet
1. # 獲得所有 sheet 的名稱
2. print(wb.get_sheet_names ())
3. # 根據 sheet名字獲得sheet
4. a_sheet = wb.get_sheet_by_name ('Sheet1')
5. # 獲得 sheet名
6. print(a_sheet.title)
7. # 獲得當前正在顯示的 sheet, 也可以用wb.get_active_sheet()
8. sheet = wb.active
獲取單元格
1. # 獲取某個單元格的值,觀察excel發現也是先字母再數字的順序,即先列再行
2. b4 = sheet['B4']
3. # 分別返回
4. print(f'({b4.column}, {b4.row}) is {b4.value}') # 返回的數字就是int型
5.
6. # 除了用下標的方式獲得,還可以用cell 函數, 換成數字,這個表示B4
7. b4_too = sheet.cell (row=4, column=2)
8. print(b4_too .value)
b4.column 返回 B, b4.row 返回4, value 則是那個單元格的值。另外cell 還有一
個屬性 coordinate, 像b4 這個單元格返回的是座標 B4 。
獲得最大行和最大列
1. # 獲得最大列和最大行
2. print(sheet.max_row)
3. print(sheet.max_column)
獲取行和列
• sheet.rows 為生成器, 裏面是每一行的資料 ,每一行又由一個tuple 包裹。
• sheet.columns 類似,不過裏面是每個tuple 是每一列的單元格。
1. # 因為按行,所以返回A1, B1, C1 這樣的順序
2. for row in sheet.rows:
3. for cell in row:
4. print(cell.value)
5.
6. # A1, A2, A3 這樣的順序
7. for column in sheet.columns:
8. for cell in column:
9. print(cell.value)
上面的代碼就可以獲得所有單元格的資料。如果要獲得某行的資料呢?給其一個
索引就行了,因為 sheet.rows 是生成器類型,不能使用索引,轉換成list 之後
再使用索引,list(sheet.rows)[2]這樣就獲取到第三行的tuple 對象。
1. for cell in list (sheet.rows)[2]:
2. print(cell.value)
如何獲得任意區間的單元格?
可以使用 range 函數,下面的寫法,獲得了以A1 為左上角,B3 為右下角矩形
區域的所有單元格。注意 range 從 1 開始的,因為在openpyxl 中為了和Excel 中
的表達方式一致,並不和編程語言的習慣以0 表示第一個值。
1. for i in range (1, 4):
2. for j in range (1, 3):
3. print(sheet.cell (row=i, column=j))
4.
5. # out
6.
7.
8.
9.
10.