python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python Excel文件读取与导入

纯Python环境下Excel文件的读取与导入详解

作者:Jazz_z

在日常数据处理工作中,将 Excel 文件中的数据导入 Python 环境进行后续分析是最常见的需求之一,本文将介绍如何使用 Free Spire.XLS for Python 这一免费库,完成 Excel 数据的读取、解析与导入操作,需要的朋友可以参考下

引言

在日常数据处理工作中,将 Excel 文件中的数据导入 Python 环境进行后续分析是最常见的需求之一。本文将介绍如何使用 Free Spire.XLS for Python 这一免费库,完成 Excel 数据的读取、解析与导入操作。

一、为什么选择这个方案

在 Python 生态中,处理 Excel 文件的方案众多。Free Spire.XLS for Python 的突出优势在于无需安装 Microsoft Office 或 WPS,纯 Python 环境即可操作 .xls.xlsx 格式文件。它支持 Python 3.6 及以上版本,兼容 Windows、Linux和 macOS。免费版足以满足大多数个人和小型项目的数据导入需求。

二、环境准备

通过pip命令即可完成安装:

pip install Spire.XLS.Free

注意:免费版对单次处理有工作表数量(最多5个)和数据行数(每表最多200行)的限制,适用于中小型文件的导入场景。

安装完成后,在Python脚本中导入相关模块:

from spire.xls import *
from spire.xls.common import *

三、核心对象模型

理解两个核心对象是使用该库的基础:

四、读取Excel数据的基础操作

4.1 加载Excel文件

# 创建Workbook对象
workbook = Workbook()

# 加载Excel文件
workbook.LoadFromFile("数据.xlsx")

4.2 获取工作表

# 获取第一个工作表(索引从0开始)
worksheet = workbook.Worksheets[0]
# 或使用 get_Item 方法
worksheet = workbook.Worksheets.get_Item(0)

4.3 读取单元格数据

通过Worksheet.Range获取单元格后,使用ValueTextNumberValue等属性读取数据:

# 通过行号和列号获取(行、列从1开始计数)
cell_value = worksheet.Range[1, 1].Value  # 读取A1单元格

# 通过地址获取
cell_text = worksheet.Range["B2"].Text

# 读取数值
cell_number = worksheet.Range["C3"].NumberValue

4.4 遍历工作表中的所有数据

# 获取数据的实际使用范围
row_count = worksheet.AllocatedRange.RowCount
col_count = worksheet.AllocatedRange.ColumnCount

# 遍历所有行和列
for row in range(1, row_count + 1):
    row_data = []
    for col in range(1, col_count + 1):
        cell_value = worksheet.Range[row, col].Value
        row_data.append(cell_value)
    print(row_data)

五、实战:将 Excel 数据导入 Python 列表

以下是一个完整的示例,将Excel文件中的所有数据读取为二维列表:

from spire.xls import Workbook

def excel_to_list(file_path):
    """将Excel文件读取为二维列表"""
    workbook = Workbook()
    workbook.LoadFromFile(file_path)
    
    # 获取第一个工作表
    sheet = workbook.Worksheets[0]
    
    # 获取数据范围
    row_count = sheet.AllocatedRange.RowCount
    col_count = sheet.AllocatedRange.ColumnCount
    
    # 读取所有数据
    data = []
    for row in range(1, row_count + 1):
        row_data = []
        for col in range(1, col_count + 1):
            row_data.append(sheet.Range[row, col].Value)
        data.append(row_data)
    
    workbook.Dispose()  # 释放资源
    return data

# 使用示例
data = excel_to_list("销售数据.xlsx")
for row in data:
    print(row)

六、实战:将 Excel 数据导入字典列表(带表头)

在实际业务中,更常见的是将数据转换为字典列表,便于按字段名访问:

from spire.xls import Workbook

def excel_to_dict_list(file_path):
    """将Excel文件读取为字典列表,第一行作为字段名"""
    workbook = Workbook()
    workbook.LoadFromFile(file_path)
    
    sheet = workbook.Worksheets[0]
    row_count = sheet.AllocatedRange.RowCount
    col_count = sheet.AllocatedRange.ColumnCount
    
    # 读取表头(第一行)
    headers = []
    for col in range(1, col_count + 1):
        headers.append(sheet.Range[1, col].Value)
    
    # 读取数据行(从第二行开始)
    result = []
    for row in range(2, row_count + 1):
        record = {}
        for col in range(1, col_count + 1):
            record[headers[col - 1]] = sheet.Range[row, col].Value
        result.append(record)
    
    workbook.Dispose()
    return result

# 使用示例
records = excel_to_dict_list("员工信息.xlsx")
for emp in records:
    print(f"姓名:{emp.get('姓名')},部门:{emp.get('部门')}")

小结

本文介绍了将 Excel 数据导入Python的完整流程,涵盖环境配置、基础读取、列表转换以及字典列表转换等典型场景。用到的免费库无需依赖Office环境,安装简便,API 直观,是处理中小型 Excel 文件导入任务的一个实用选择。

到此这篇关于纯Python环境下Excel文件的读取与导入详解的文章就介绍到这了,更多相关Python Excel文件读取与导入内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文