python中如何操作Excel文件_Python使用openpyxl/pandas操作Excel

尼克
发布: 2025-09-11 18:41:01
原创
353人浏览过
使用openpyxl和pandas操作Excel:openpyxl适合精细格式控制,pandas擅长数据分析;读写大型文件时可采用只读/只写模式或分块处理以提升性能。

python中如何操作excel文件_python使用openpyxl/pandas操作excel

Python操作Excel文件,简单来说,就是用代码读写Excel表格。两种常用的库是

openpyxl
登录后复制
pandas
登录后复制
openpyxl
登录后复制
更底层,适合精细控制格式;
pandas
登录后复制
则更适合数据分析和处理,简单粗暴。

解决方案

  1. 使用

    openpyxl
    登录后复制

    • 安装:

      pip install openpyxl
      登录后复制

      立即学习Python免费学习笔记(深入)”;

    • 读取:

      from openpyxl import load_workbook
      
      # 加载工作簿
      workbook = load_workbook(filename="example.xlsx")
      
      # 选择工作表
      sheet = workbook["Sheet1"]  # 或者 workbook.active 获取活动工作表
      
      # 读取单元格数据
      cell_value = sheet["A1"].value
      print(cell_value)
      
      # 循环读取行
      for row in sheet.iter_rows(min_row=2, max_row=5, min_col=1, max_col=3):
          for cell in row:
              print(cell.value)
      登录后复制

      iter_rows
      登录后复制
      可以方便地按行读取数据,指定起始和结束的行/列。 注意,
      openpyxl
      登录后复制
      的索引是从1开始的,不是从0开始的。 一开始用的时候,经常搞错。

    • 写入:

      from openpyxl import Workbook
      
      # 创建一个新的工作簿
      workbook = Workbook()
      
      # 选择工作表
      sheet = workbook.active
      
      # 写入单元格数据
      sheet["A1"] = "Hello"
      sheet["B2"] = 123
      
      # 保存工作簿
      workbook.save(filename="new_example.xlsx")
      登录后复制

      写入数据非常直接,直接赋值即可。 创建新的工作簿也很简单。

    • 格式设置:

      openpyxl
      登录后复制
      提供了丰富的格式设置选项,比如字体、颜色、对齐方式等。 这部分比较繁琐,需要查阅文档。

  2. 使用

    pandas
    登录后复制

    • 安装:

      pip install pandas
      登录后复制

    • 读取:

      import pandas as pd
      
      # 读取Excel文件
      df = pd.read_excel("example.xlsx", sheet_name="Sheet1")
      
      # 打印DataFrame
      print(df)
      
      # 获取特定列
      column_data = df["Column1"]
      print(column_data)
      登录后复制

      read_excel
      登录后复制
      函数非常强大,可以读取指定的工作表,还可以指定行索引、列索引等。 返回的是一个DataFrame对象,方便进行数据分析。

    • 写入:

      import pandas as pd
      
      # 创建一个DataFrame
      data = {"Name": ["Alice", "Bob", "Charlie"], "Age": [25, 30, 28]}
      df = pd.DataFrame(data)
      
      # 写入Excel文件
      df.to_excel("new_example.xlsx", sheet_name="Sheet1", index=False)
      登录后复制

      to_excel
      登录后复制
      函数可以将DataFrame写入Excel文件。
      index=False
      登录后复制
      表示不写入行索引。

      pandas
      登录后复制
      写入excel,在处理大型数据集时会非常高效。

openpyxl
登录后复制
pandas
登录后复制
,我该选哪个?

选择哪个库取决于你的具体需求。 如果你需要精细控制Excel的格式,或者处理一些特殊的需求,比如合并单元格、插入图片等,那么

openpyxl
登录后复制
更适合你。 如果你主要是进行数据分析和处理,那么
pandas
登录后复制
更方便快捷。
pandas
登录后复制
的DataFrame对象提供了丰富的数据处理方法,可以方便地进行数据清洗、转换、分析等操作。

如何处理Excel中的日期格式?

在用

openpyxl
登录后复制
读取Excel文件时,日期会被读取成datetime对象。

from openpyxl import load_workbook
from datetime import datetime

workbook = load_workbook(filename="example_with_dates.xlsx")
sheet = workbook.active

date_value = sheet["A1"].value

if isinstance(date_value, datetime):
    print(date_value.strftime("%Y-%m-%d")) # 格式化日期
else:
    print(date_value)
登录后复制

pandas
登录后复制
读取时,默认也会尝试将日期识别为datetime对象。 如果读取失败,可以手动指定
parse_dates
登录后复制
参数。

import pandas as pd

df = pd.read_excel("example_with_dates.xlsx", parse_dates=["DateColumn"]) # DateColumn 是包含日期的列名
print(df["DateColumn"].dtype) # 确认是否为datetime64[ns]
登录后复制

如何优化Excel文件读写速度?

对于大型Excel文件,读写速度是一个需要考虑的问题。

  • openpyxl
    登录后复制
    可以使用
    read_only
    登录后复制
    write_only
    登录后复制
    模式来提高读写速度。
    read_only
    登录后复制
    模式只能读取数据,不能修改数据;
    write_only
    登录后复制
    模式只能写入数据,不能读取数据。

    from openpyxl import load_workbook
    
    # 只读模式
    workbook = load_workbook(filename="large_file.xlsx", read_only=True)
    sheet = workbook.active
    
    for row in sheet.rows:
        for cell in row:
            print(cell.value)
    
    # 只写模式
    from openpyxl import Workbook
    
    workbook = Workbook(write_only=True)
    sheet = workbook.create_sheet()
    
    for i in range(1000):
        row = [i] * 10
        sheet.append(row)
    
    workbook.save("large_file_write_only.xlsx")
    登录后复制
  • pandas
    登录后复制
    可以使用
    chunksize
    登录后复制
    参数来分块读取数据。 这样可以避免一次性将整个文件加载到内存中,从而提高读取速度。

    import pandas as pd
    
    for chunk in pd.read_excel("large_file.xlsx", chunksize=1000):
        print(chunk.head()) # 处理每一块数据
    登录后复制

    另外,尽量避免在循环中频繁地读写单元格,可以将数据先存储到内存中,然后一次性写入Excel文件。

以上就是python中如何操作Excel文件_Python使用openpyxl/pandas操作Excel的详细内容,更多请关注php中文网其它相关文章!

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号