Python 读写 Excel 文件库推荐和使用教程

文章目录

    • 前言
    • [Python 读写 Excel 库简介](#Python 读写 Excel 库简介)
    • [openpyxl 处理 Excel 文件教程](#openpyxl 处理 Excel 文件教程)
    • [pandas 处理 Excel 文件教程](#pandas 处理 Excel 文件教程)
    • 总结

前言

Python 读写 Excel 文件的库总体看还是很多的, 各有其优缺点, 以下用一图总结各库的优缺点, 同时对整体友好的库重点介绍其使用教程。

Python 读写 Excel 库简介

库名称 .xls .xlsx 读取 写入 修改 保存 格式调整 插入图片
xlrd × × × × ×
xlwt × ×
xlutils × × × ×
xlwings
XlsxWriter × × ×
openpyxl ×
pandas × × ×

注: openpyxl: 优点是不依赖Excel,计算机上不安装Excel它也能读写Excel文件,所以适合做开发。

openpyxl 处理 Excel 文件教程

python 复制代码
import openpyxl


def learn_openpyxl_deal_excel(fileName):
    # https://openpyxl.readthedocs.io/en/stable/index.html
    # 1 读取文件
    wb = openpyxl.load_workbook(fileName)
    sheet = wb['Sheet1']
    for sheet in wb:  # 遍历所有 sheet
        print(sheet.title)
    print(wb.sheetnames)

    # 2 获取单元格值
    # 1) 指定坐标范围的值
    cellss = sheet['A1:B5']
    # 2) 指定列的值
    cells = sheet['A']
    cellss = sheet['A:C']
    # 3) 指定行的值
    cells = sheet[5]
    cellss = sheet[5:7]
    # 4) 获取单元格的值 # 行下标从 1 开始 列下标从 0 开始
    print(sheet[1][0].value)
    # for cells in cellss:
        # for cell in cells:
            # print(cell.value)

    # 3 写入数据
    cell = sheet['D4']
    cell.value = '521'
    sheet.cell(1, 1).value = "write_Data"

    # 4 保存文件
    wb.save('data/new_data_openpyxl.xlsx')

    # 5 新建文件
    workbook = openpyxl.Workbook()
    worksheet = workbook.active
    worksheet.title = 'newSheet'
    # 插入数据
    row = ["A", "B", "C"]
    worksheet.append(row)
    ws1 = workbook.create_sheet("Mysheet_End")  # insert at the end (default)
    ws2 = workbook.create_sheet("Mysheet_0", 0)  # insert at first position
    ws3 = workbook.create_sheet("Mysheet_pen", -1)  # insert at the penultimate position
    workbook.save('data/new_data_openpyxl_2.xlsx')
    workbook.close()


if __name__ == "__main__":
    xlsx_path = 'data/data.xlsx'
    learn_openpyxl_deal_excel(xlsx_path)

pandas 处理 Excel 文件教程

python 复制代码
import pandas as pd

def learn_pandas_deal_excel(fileName):
	# https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html#pandas.read_excel
	# https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_excel.html?highlight=excel#pandas.DataFrame.to_excel
    # 1 读取文件的同时必须指定工作表:
    sheet = pd.read_excel(fileName, sheet_name='Sheet1', index_col=False)

    # 2 获取单元格值
    # 第一行为标题行,所以从第二行才开始是其数据的第一行(idex=0)
    # print(sheet.head(2))
    # 1) 指定行的值 loc 根据所定义的index来获取行
    # print(sheet.loc[1])
    # print(sheet.iloc[1])
    # 2) 指定列的值
    print(sheet.iloc[:, 0]) # 列下标从 0 开始
    # 3) 获取单元格的值
    # print(sheet.loc[0][2])

    # 3 保存文件
    df = pd.DataFrame([1, 2, 3])
    df.to_excel("data/new_data_pandas.xlsx")


if __name__ == "__main__":
    xls_path = 'data/data.xls'
    xlsx_path = 'data/data.xlsx'
    learn_pandas_deal_excel(xls_path)
    learn_pandas_deal_excel(xlsx_path)

总结

本博客提到的所有代码均可到我的 GitHub 下载。

相关推荐
数据智能老司机4 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机5 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机5 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机5 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i6 小时前
drf初步梳理
python·django
每日AI新事件6 小时前
python的异步函数
python
这里有鱼汤7 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook16 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室16 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三18 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试