前言
之前處理excel的讀寫時用的是xlrd/xlwt,但是這兩個庫有個缺點就是只對xls的格式處理的比較好,對以xlsx結尾的格式就不行了。由于現在大家使用的都是最新版本的office,excel的格式都是xlsx,因此此時再繼續用xlrd/xlwt處理就不合適了,慶幸的是對于xlsx文件的讀寫,我們還可以使用openpyxl來操作。
我對excel并不熟悉,平時也不怎么用,所以對excel的處理很簡單,只是簡單的讀寫,這里演示的也是簡單的讀寫操作,具體的高級功能,可以參考文后的鏈接地址。
一:寫一個excel文件如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
from openpyxl import Workbook from openpyxl.utils import get_column_letter # 在內存中創建一個workbook對象,而且會至少創建一個 worksheet wb = Workbook() #獲取當前活躍的worksheet,默認就是第一個worksheet ws = wb.active #設置單元格的值,A1等于6(測試可知openpyxl的行和列編號從1開始計算),B1等于7 ws.cell(row = 1 , column = 1 ).value = 6 ws.cell( "B1" ).value = 7 #從第2行開始,寫入9行10列數據,值為對應的列序號A、B、C、D... for row in range ( 2 , 11 ): for col in range ( 1 , 11 ): ws.cell(row = row, column = col).value = get_column_letter(col) #可以使用append插入一行數據 ws.append([ "我" , "你" , "她" ]) #保存 wb.save(filename = "/Users/budong/Desktop/a.xlsx" ) |
二:讀剛剛寫入的excel內容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
from openpyxl import load_workbook #打開一個workbook wb = load_workbook(filename = "/Users/budong/Desktop/a.xlsx" ) #獲取當前活躍的worksheet,默認就是第一個worksheet #ws = wb.active #當然也可以使用下面的方法 #獲取所有表格(worksheet)的名字 sheets = wb.get_sheet_names() #第一個表格的名稱 sheet_first = sheets[ 0 ] #獲取特定的worksheet ws = wb.get_sheet_by_name(sheet_first) #獲取表格所有行和列,兩者都是可迭代的 rows = ws.rows columns = ws.columns #迭代所有的行 for row in rows: line = [col.value for col in row] print line #通過坐標讀取值 print ws.cell( 'A1' ).value # A表示列,1表示行 print ws.cell(row = 1 , column = 1 ).value |
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:http://peiqiang.net/2017/03/23/how-to-use-openpyxl.html