当前位置: 首页 > news >正文

python操作excel

文章目录

        • 安装依赖
    • 写操作
        • 写操作-创建最简单的excel
        • 写操作-创建带header的excel
        • 写操作-多sheet操作(直接创建2个)
        • 写操作-多sheet操作(追加创建sheet)
          • DataFrame和ExcelWriter的区别?
    • 读操作
        • 读操作-直接读取(默认第一个sheet的内容)
        • 读操作-读取指定sheet的数据
        • 读操作-读取部分数据(指定列或行)
        • 读操作-一次性读取所有 Sheet
        • 读操作-流式读取
安装依赖
pipinstallpandas openpyxl

写操作

写操作-创建最简单的excel

创建excel_demo.py,代码:

importpandasaspd data={'姓名':['张三','李四','王五'],'年龄':[25,30,28],'城市':['北京','上海','广州']}df=pd.DataFrame(data)# index=False 表示不保存行索引(即左侧的序号)df.to_excel('员工信息表.xlsx',index=False)
写操作-创建带header的excel

创建excel_header.py,代码:

importpandasaspd raw_data=[['王五',28,'广州'],['赵六',24,'深圳']]df=pd.DataFrame(raw_data,columns=['员工姓名','员工年龄','所在城市'])df.to_excel('自定义表头.xlsx',index=False)
写操作-多sheet操作(直接创建2个)
importpandasaspd# 准备两份不同的数据df1=pd.DataFrame({'水果':['苹果','香蕉'],'销量':[100,200]})df2=pd.DataFrame({'蔬菜':['白菜','萝卜'],'库存':[50,60]})# 使用 ExcelWriter 创建文件withpd.ExcelWriter('多工作表文件.xlsx')aswriter:# 写入第一个 Sheetdf1.to_excel(writer,sheet_name='水果清单',index=False)# 写入第二个 Sheetdf2.to_excel(writer,sheet_name='蔬菜库存',index=False)print("文件已生成,包含两个 Sheet!")
写操作-多sheet操作(追加创建sheet)
importpandasaspd# 准备要写入的新数据df_new=pd.DataFrame({'部门':['技术部','销售部'],'人数':[20,15]})file_path='员工信息表.xlsx'# ✅ 正确做法:直接使用 mode='a'# 只要加了 mode='a',pandas 会自动处理保留原 Sheet 的逻辑withpd.ExcelWriter(file_path,engine='openpyxl',mode='a')aswriter:df_new.to_excel(writer,sheet_name='部门统计',index=False)print("新 Sheet 已添加!")
DataFrame和ExcelWriter的区别?

细心的你一定发现了上面的用法不同。
DataFrame # 基础版,适合快速导出excel
ExcelWriter # 高级版,如果想要复杂效果,用ExcelWriter

读操作

读操作-直接读取(默认第一个sheet的内容)
importpandasaspd# 读取第一个 Sheetdf=pd.read_excel('公司数据.xlsx')print("👇 读取结果:")print(df)
读操作-读取指定sheet的数据

是通过sheet_name来指定的,都是这个字段,可以传sheet的名称,也可以传下标

importpandasaspd# 方法 A:通过 Sheet 名称读取df_spec=pd.read_excel('公司数据.xlsx',sheet_name='二线员工')print("\n👇 指定读取 '二线员工' Sheet:")print(df_spec)# 方法 B:通过索引读取 (0表示第一个,1表示第二个)df_idx=pd.read_excel('公司数据.xlsx',sheet_name=1)
读操作-读取部分数据(指定列或行)

通过usecols指定列,通过nrows指定行。

importpandasaspd# usecols: 只读取 '姓名' 和 '工资' 列 (也可以用 Excel 列号如 'A,C')# nrows: 只读取前 1 行数据df_part=pd.read_excel('公司数据.xlsx',usecols=['姓名','工资'],nrows=1)print("\n👇 只读取特定列和前1行:")print(df_part)
读操作-一次性读取所有 Sheet

注意这里的区别,和默认第一个sheet的区别。
如果不指定sheet_name,默认第一个。
如果指定sheet_name=None,读取全部sheet。

importpandasaspd# 读取所有 Sheetall_sheets=pd.read_excel('公司数据.xlsx',sheet_name=None)print("\n👇 读取所有 Sheet (返回的是字典):")forname,dfinall_sheets.items():print(f"--- Sheet名称:{name}---")print(df)
读操作-流式读取

数据量大的时候避免一次性加载。

fromopenpyxlimportload_workbook file_path='大数据.xlsx'# read_only=True 是关键!这会开启流式读取模式,不会把整个文件加载到内存workbook=load_workbook(file_path,read_only=True)worksheet=workbook.activeprint("开始流式读取...")fori,rowinenumerate(worksheet.iter_rows(values_only=True)):# row 是一个元组,例如 ('张三', 25, '北京')# 你可以在这里收集数据,或者直接处理# 比如每 1000 行做一次批量处理# batch.append(row)ifi%1000==0:print(f"正在读取第{i}行...")workbook.close()
http://www.jsqmd.com/news/702752/

相关文章:

  • Onekey:3步快速获取Steam游戏清单的自动化工具指南
  • 2026年甘肃陇南青海地区配电柜制造企业推荐,防水照明配电柜费用多少 - 工业设备
  • 青龙面板依赖管理终极解决方案:智能自动化部署效率提升3倍
  • HarmonyOS 6学习:V8引擎内存泄露排查与长截图“滚动裁缝”实战
  • 终极窗口调整方案:WindowResizer让你完全掌控任意窗口尺寸
  • 霍格沃茨之遗DX12崩溃怎么解决?DXGI_DEVICE_REMOVED错误终极解决指南
  • 2026年高压釜厂家口碑推荐榜: 加气砖蒸压釜、混凝土蒸压釜、玻璃夹胶高压釜、鞋底发泡高压釜厂家选择指南 - 海棠依旧大
  • WaveTools鸣潮工具箱实战指南:深度解析画质优化与抽卡分析完整方案
  • 告别黑框!用Qt+FFmpeg 4.2.2在Windows上打造你的第一个带界面的视频播放器
  • 甘肃东盟电力设备价格多少钱,其安全性能在西宁有优势吗 - 工业推荐榜
  • 2026毕业季收藏:10款降AI率工具亲测红黑榜(AI率40%救命指南) - 降AI实验室
  • 如何快速完成网页文本批量替换:Chrome插件终极指南
  • 拆解一篇真实SCI:如何用MIMIC-IV的衍生表完成患者筛选与队列构建
  • 保姆级教程:用ENSP模拟企业网,三层交换+路由器+NAT搞定内外网互通
  • 为什么92%的IoT固件CVE-2025系列漏洞可被《现代C内存安全编码规范2026》提前拦截?——某头部车企OTA热修复实录
  • 3步将手机摄像头变为OBS专业直播源:DroidCam OBS插件完全指南
  • 2026甘肃东盟电力设备性能如何,适用于哪些场景 - myqiye
  • 霍格沃茨遗产闪退DX12修复方法:三步快速止损与光追优化设置
  • 从产线改造到机器视觉:PLCnext Virtual Control如何用Python+Codesys搞定柔性制造中的‘软硬协同’
  • LFM2.5-VL-1.6B书法教学:字帖图识别+笔画分析+临摹建议生成
  • Meshroom:7个步骤从零开始掌握免费开源的3D重建软件
  • Multi-Agent 任务分配算法:实现负载均衡与高效协作的核心逻辑
  • 解释器管理化技术中的解释器计划解释器实施解释器验证
  • 锂离子电池健康状态与寿命预测的增量容量与差分电压分析工具
  • 保姆级教程:手把手带你用Wireshark给海康摄像机GB28181注册失败“抓包”定位
  • 别再手动挂载了!Linux服务器间用NFS共享文件夹,5分钟搞定开机自动挂载(CentOS 7实战)
  • 别急着更新Win10 22H2!先看看这3个你可能不知道的‘坑’和真实体验
  • 基于LLM Agent的智能管家OmniSteward:从原理到部署实践
  • PyAEDT工程仿真自动化终极指南:三步构建智能参数化设计工作流
  • ComfyUI-SUPIR内存访问冲突深度调试指南:从崩溃代码3221225477到稳定运行的终极解决方案