天天看點

Python讀取Excel資料的幾種方式

作者:一代鹽商

多年來,教學多班級學生各個學期的成績都是用Excel格式儲存的,管理比較混亂。有時,路上碰到學生家長,想不起該生具體成績,顯得不關心該學生,很是尴尬。有時想了解一個學生多年來各科成績是否有進步,查閱曆史資料也不友善,決定把這些excel的資料錄入到資料庫。Excel資料格式大抵如下:

Python讀取Excel資料的幾種方式

把資料從Excel表讀取到Python程式中,再從Python程式寫入資料庫。從Excel表到Python有幾種實作方式。

方式一:

安裝xlrd庫,如果Excel表格是xlsx檔案的,則需要安裝xlrd庫低版本,高版本不支援xlsx檔案。

pip install xlrd==1.2.0           
Python讀取Excel資料的幾種方式

代碼實作如下:

import xlrd

# 打開檔案
workbook = xlrd.open_workbook("course.xlsx")
# 擷取第一個sheet
sheet = workbook.sheet_by_index(0)
# 周遊每一行并輸出該行所有單元格資料
for row_index in range(sheet.nrows):
    row = sheet.row_values(row_index)
    # 過濾掉第一行标題
    if type(row[0]) == float:
        print(int(row[0]), row[1], row[2], int(row[3]))           
Python讀取Excel資料的幾種方式

方式二:

安裝openpyxl

pip install openpyxl           
Python讀取Excel資料的幾種方式

代碼實作如下:

from openpyxl import load_workbook

# 打開檔案
workbook = load_workbook("course.xlsx")

# 擷取第一個sheet
sheet = workbook.active

for row in sheet.iter_rows():
    row_data = [cell.value for cell in row]
    if type(row_data[0]) == int:
        print(row_data[0], row_data[1], row_data[2], row_data[3])           

方式三:

安裝pandas,安裝openpyxl(這個也得安裝,否則會報錯,說缺少這個子產品)

pip install pandas           
Python讀取Excel資料的幾種方式
pip install openpyxl           
Python讀取Excel資料的幾種方式

代碼實作如下:

import pandas as pd

df = pd.read_excel("course.xlsx")
for i in range(0, len(df)):
    print(df.iloc[i]["學号"], end=" ")
    print(df.iloc[i]["姓名"], end=" ")
    print(df.iloc[i]["科目"], end=" ")
    print(df.iloc[i]["成績"])           

方式四:

安裝xlwings

pip install xlwings           
Python讀取Excel資料的幾種方式

代碼實作如下:

import xlwings as xw

workbook = xw.Book("course.xlsx")

sheet = workbook.sheets[0]

for item in sheet.range("A1:D21").value:
    if type(item[0]) == float:
        print(int(item[0]), item[1], item[2], int(item[3])           

方式五:

安裝pyexcel、pyexcel-xlsx、pyexcel-xls

pip install pyexcel           
Python讀取Excel資料的幾種方式
pip install pyexcel-xlsx           
Python讀取Excel資料的幾種方式
pip install pyexcel-xls           
Python讀取Excel資料的幾種方式

代碼實作如下:

import pyexcel

sheet = pyexcel.get_sheet(file_name="course.xlsx")

for row in sheet:
    if type(row[0]) == int:
        print(row[0], row[1], row[2], row[3])           

心得:

以上測試Excel表格導入到Python中,其Python版本是3.11.4。各種導入方式,查閱了很多部落格,按照部落格的步驟操作,結果發現不能使用,實際開發中還是多看程式運作抛出的異常,按照異常解決問題更快速。