news 2026/2/2 8:46:38

读写Excel

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
读写Excel

openpyxl 是目前比较常用的操作Excel的Python库,openpyxl库既可以读文件,也可以写文件,也可以修改文件。

  • 安装 openpyxl
    pip install openpyxl
  • 打开现有Excel文件

    可以使用openpyxl.load_workbook()方法打开现有的Excel文件,可以打开xlsx,xlsm,xltx,xltm这些格式,不能打开老的xls格式。

    fromopenpyxlimportload_workbook test=load_workbook(r'E:\桌面\test.xlsx')print(f"表单名分别是:{test.sheetnames}")print(f"表单的数量为:{len(test.sheetnames)}")

    要读取某个表单里单元格中的数据,必须要先获取表单(sheet)对象。

  • 读取指定的单元格

    可以这样sheet[‘B5’]根据列名,行号直接访问某个单元格。也可以这样sheet.cell(row=5,column=2)根据列号,行号直接访问某个单元格。**注意:**行号列号都是从1开始,不是从0开始。

    fromopenpyxlimportload_workbook test=load_workbook(r'E:\桌面\test.xlsx')sheet=test.active c1=sheet['B2']c2=sheet['A2']c3=sheet.cell(row=2,column=1)print(f"B2:{c1.value}")print(f"A2:{c2.value}")print(f"cell:{c3.value}")print(f"表单名分别是:{test.sheetnames}")print(f"表单的数量为:{len(test.sheetnames)}")
  • 读取行和列里面的值

    openpyxl 没有提供直接获取一行或者一列单元格的值的方法

  • 新建Excel,写入数据
    """ 新建excel文件 """importopenpyxl#创建一个workbook对象ZJB=openpyxl.Workbook()sheet=ZJB.active sh1=ZJB.create_sheet('喜剧',0)sh1['A1']='剧名'sh1['B1']='剧情'sh1['C1']='上映时间'sh2=ZJB.create_sheet('悬疑',1)sh3=ZJB.create_sheet('古装',2)
    """ 写入数据 1.写数据基本的用法 """importopenpyxl#创建一个workbook对象ZJB=openpyxl.Workbook()sheet=ZJB.active sh1=ZJB.create_sheet('喜剧',0)sh1['A1']='剧名'sh1['B1']='剧情'sh1['C1']='上映时间'sh2=ZJB.create_sheet('悬疑',1)sh3=ZJB.create_sheet('古装',2)sh3['A2']='玉茗茶骨'#保存文件ZJB.save('追剧列表.xlsx')
    """ 写入数据 2.保存在字典中的数据写入excel表中 """importopenpyxl NameAge={'张飞':38,'赵云':27,'许褚':36,'典韦':38,'关羽':39,'黄忠':49,'徐晃':43,'马超':23,}#创建一个workbook对象ZJB=openpyxl.Workbook()sheet=ZJB.active sheet.title='年龄表'sheet['A1']='姓名'sheet['B1']='年龄'#写入内容row=2forname,ageinNameAge.items():sheet.cell(row,1).value=name sheet.cell(row,2).value=age row=row+1#保存文件ZJB.save('年龄表.xlsx')
    """ 写入数据 3.写入保存在列表和元组中的数据,可以使用append方法在sheet的末尾添加新行,写入数据。 """importopenpyxl NameAge=[['张飞',38],['赵云',27],['许褚',36],['典韦',38],['关羽',39],['黄忠',49],['徐晃',43],['马超',23]]#创建一个workbook对象ZJB=openpyxl.Workbook()sheet=ZJB.active sheet.title='年龄表'sheet['A1']='姓名'sheet['B1']='年龄'#写入内容forrowinNameAge:sheet.append(row)#保存文件ZJB.save('年龄表1.xlsx')
  • 插入行,插入列

    sheet对象的insert_rowsinsert_cols方法,分别用来插入

    importopenpyxl ts=openpyxl.load_workbook('年龄表1.xlsx')sheet=ts['年龄表']sheet.insert_rows(2)sheet.iter_cols(3)ts.save('年龄表1.xlsx')
  • 删除行,删除列

    sheet对象的delete_rowsdelete_cols方法,分别用来删除

    importopenpyxl ts=openpyxl.load_workbook('年龄表1.xlsx')sheet=ts['年龄表']sheet.delete_rows(4)sheet.delete_cols(2)ts.save('年龄表1.xlsx')
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/28 5:50:42

FancyZones窗口管理:多显示器布局完整配置指南

FancyZones窗口管理:多显示器布局完整配置指南 【免费下载链接】PowerToys Windows 系统实用工具,用于最大化生产力。 项目地址: https://gitcode.com/GitHub_Trending/po/PowerToys FancyZones是PowerToys工具集中最实用的窗口管理功能&#xff…

作者头像 李华
网站建设 2026/1/29 20:53:29

5步搞定天邑TY1608刷Armbian:让旧机顶盒秒变服务器

5步搞定天邑TY1608刷Armbian:让旧机顶盒秒变服务器 【免费下载链接】amlogic-s9xxx-armbian amlogic-s9xxx-armbian: 该项目提供了为Amlogic、Rockchip和Allwinner盒子构建的Armbian系统镜像,支持多种设备,允许用户将安卓TV系统更换为功能强大…

作者头像 李华
网站建设 2026/1/27 3:09:02

Topit窗口置顶大师:让每个窗口都在它该在的位置

Topit窗口置顶大师:让每个窗口都在它该在的位置 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 你是否曾经在忙碌的工作中,为了找到被层…

作者头像 李华
网站建设 2026/1/30 17:07:28

Qwen3-Embedding论文分析神器:学生党1小时1块,轻松跑4B模型

Qwen3-Embedding论文分析神器:学生党1小时1块,轻松跑4B模型 你是不是也遇到过这样的情况?研究生刚入学,导师让你用Embedding模型分析文献之间的关联性,说这是做科研的基本功。可一查资料发现,这玩意儿得在…

作者头像 李华
网站建设 2026/2/2 5:29:28

DCT-Net模型魔改指南:云端实验环境不怕玩坏

DCT-Net模型魔改指南:云端实验环境不怕玩坏 你是不是也遇到过这种情况:作为研究生,手头有个不错的研究方向——想在DCT-Net人像卡通化模型基础上做点创新改进,比如换个损失函数、加个注意力模块,或者尝试多风格融合。…

作者头像 李华
网站建设 2026/1/15 7:38:16

OpenCV EDSR教程:WebUI集成与使用详细步骤

OpenCV EDSR教程:WebUI集成与使用详细步骤 1. 引言 1.1 技术背景 随着数字图像在社交媒体、安防监控和文化遗产保护等领域的广泛应用,低分辨率图像的清晰化需求日益增长。传统插值方法(如双线性或双三次插值)虽然计算效率高&am…

作者头像 李华