1. 程式人生 > >Python操作Excel新版本xlsx檔案

Python操作Excel新版本xlsx檔案

之前處理excel的讀寫時用的是xlrd/xlwt,但是這兩個庫有個缺點就是隻對xls的格式處理的比較好,對以xlsx結尾的格式就不行了。由於現在大家使用的都是最新版本的office,excel的格式都是xlsx,因此此時再繼續用xlrd/xlwt處理就不合適了,慶幸的是對於xlsx檔案的讀寫,我們還可以使用openpyxl來操作。

我對excel並不熟悉,平時也不怎麼用,所以對excel的處理很簡單,只是簡單的讀寫,這裡演示的也是簡單的讀寫操作,具體的高階功能,可以參考文後的連結地址。
一:寫一個excel檔案如下

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="a.xlsx")

二:讀剛剛寫入的excel內容如下

from openpyxl import load_workbook

#開啟一個workbook
wb = load_workbook(filename="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 print(ws['A1'].value)

執行結果如圖:

這裡寫圖片描述

這裡寫圖片描述