天天看点

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。各种导入方式,查阅了很多博客,按照博客的步骤操作,结果发现不能使用,实际开发中还是多看程序运行抛出的异常,按照异常解决问题更快速。