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 下载。

相关推荐
Είναι η κοπέλα39 分钟前
显存计算与模型选择:你的显卡能跑多大的模型
人工智能·pytorch·python·开源·conda
ROSF686844 分钟前
2026 仿石漆乳液供应商:市场布局与行业发展态势梳理
大数据·人工智能·python
青少儿编程课堂1 小时前
AC自动机多模式串匹配精讲:校园关键词巡检实战解析
c++·python·算法·bfs·信息学竞赛
hhzz1 小时前
【YOLO 入门到精通 04】理解任务与模型家族:7 大 CV 任务与 YOLO26 选型指南
人工智能·python·深度学习·yolo·计算机视觉
Escalating_xu1 小时前
【Python】使用库:标准库、第三方库、pip、项目实战与程序打包
java·python·pip
水獭比特1 小时前
Agent 工具审批不止一个按钮:用 v0.22.1 复盘入口、恢复和副作用
人工智能·python
苦瓜打怪兽2 小时前
leetcode 热题100(11. 盛最多水的容器)
python·算法·leetcode
砚底藏山河2 小时前
量化实战:回测数据底座快照与版本管理进阶
java·大数据·python·金融·maven
“AI国潮设计-小江”2 小时前
《Python+SDXL实战:用ControlNet批量生成“英歌舞麻将糕”IP,附自动化脚本与商用思路》
开发语言·人工智能·python·prompt·aigc
逗脑IDE4 小时前
零基础学ESP32:RFID无线射频卡——让ESP32拥有“刷卡“能力!
开发语言·网络·人工智能·python·esp32·硬件开发