Python 語言 講義  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A B C


讀取excel檔案 - 使用openpyxl


安裝模組
在 “開始 / 附屬應用程式 / 打開命令提示字元”依序複製貼上以下4行(1行1行的來複製貼上)
cd AppData\Local\Programs\Python\Python36-32\Scripts
pip3 install pandas
pip3 install openpyxl
pip3 install xlrd

範例: test.xls 內容: 2個sheet, 3個cols 與 4個cols
Sheet data1
姓名	學號	組別
方仁	U08217001	3
王宇	U08217002	2
林勇	U08217003	2
甘于	U08217004	4
余晨	U08217005	6
Sheet data2
姓名	學號	組別	排名
連庭	U08217026	3	3
郭偉	U08217027	5	12
陳鈞	U08217028	1	15
陳仕	U08217029	2	31
陳暐	U08217030	6	5
邱詠	U08217031	2	35

程式1: 讀取檔案中的某一個表單(sheet) - 顯示最大行數與最大列數
import openpyxl
workbook = openpyxl.load_workbook('test2.xlsx') # 開啟一個工作簿
st = workbook['data2'] # 指定表單

print(st.max_row) # 最大行數, 留意excel空白行的問題
print(st.max_column) # 最大列數, 留意excel空白欄的問題

程式2: 讀取檔案中的表單 - 特定儲存格
import openpyxl
workbook = openpyxl.load_workbook('test2.xlsx') # 開啟一個工作簿
st = workbook['data2'] # 指定表單
x = st.cell(row=1, column=1).value #讀取特定儲存格
print("x=",x)
y = st['B2'].value #讀取特定儲存格-另一種
print("y=",y)

程式3: 讀取檔案中的表單 - 某一塊的儲存格
import openpyxl
workbook = openpyxl.load_workbook('test2.xlsx') # 開啟一個工作簿
st = workbook['data2'] # 指定表單

print(st.max_row) # 最大行數, 留意excel空白行的問題
print(st.max_column) # 最大列數, 留意excel空白欄的問題

data = st['A1':'B4'] # 讀取A1-B4的單元格,讀取多個單元格時,都是以元組的格式來儲存
print("-"*30)
print("data=",data)
print("-"*30)
print("data[1][1]=",data[1][1].value)
print("-"*30)

for row in list(data): # 每次取一列的資料
    x = []
    for cell in row: # 每次取一格
        x.append(cell.value)
    print(x)

程式6: 新建一個excel檔, 並寫入一筆資料(特定儲存格)
import openpyxl
workbook = openpyxl.Workbook() # 建立一個工作簿
st = workbook.create_sheet('data1') # 建立一個表單
st.cell(row=1, column=1, value="123") # 寫入特定儲存格
workbook.save('test2.xlsx') # 存檔, 如果檔案已存在, 將會覆蓋原檔案
#讀取多個單元格時,都是以元組的形式返回


參考來源:
Python 操作 Excel 哪家強
openpyxl讀取excel資料



Python 語言 講義  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A B C