python处理excel数据计算_Python处理Excel数据

python处理excel数据计算_Python处理Excel数据前段时间做了个小项目 帮个海洋系的教授做了个数据处理的软件 基本的功能很简单 就是对 excel 里面的一些数据进行过滤 统计 对多个表的内容进行合并等 之前没有处理 excel 数据的经验 甚至于自己都很少用到 excel 记得 python 核心 的最后一章里有讲到用 win32com 操作 office 看了一下讲的不是很清楚 google 了一下找到不少能处理 excel 数据的模块 对比了一下最终选定了 op

前段时间做了个小项目,帮个海洋系的教授做了个数据处理的软件。基本的功能很简单,就是对excel里面的一些数据进行过滤,统计,对多个表的内容进行合并等。之前没有处理excel数据的经验,甚至于自己都很少用到excel。记得《python核心》的最后一章里有讲到用win32 com操作office, 看了一下讲的不是很清楚。google了一下找到不少能处理excel数据的模块。对比了一下最终选定了openpyxl,openpyxl专门用于处理excel2007及以上版本产生的xlsx文件。不幸的是我所得到的数据中xls和xlsx都有,不过转换并不是什么难事,就暂时吧这个问题忽略了。

模块的安装过程非常简单,官网上有简单的使用说明和api文档,整体来说使用非常容易,也基本能满足我的需求。对于excel文件,我所需要的只是从中将相应位置的数据读取出来,以及把数据写入到对应的位置中去。而其间数据的处理,通过python可以很容易地完成。

1. excel数据的类型及组织方式

openpyxl中定义了多种数据格式,我只涉及到了其中最重要的三种:

null: 空值,对应于python中的none,表示这个cell里面没有数据。

numberic: 数字型,统一按照浮点数来进行处理。对应于python中的float。

string: 字符串型,对应于python中的unicode。

每一个excel数据文件从上至下分为三个层级的对象:

workbook: 每一个excel文件就是一个workbook。

sheet: 每一个workbook中可以包含多个sheet,具体就对应excel中我们在左下脚所看到的“sheet1”,“sheet2”等。

cell: 每一个sheet就是我们通常所看到的一个表格,可以含有m行,n列,每个确定的行号,列号所对应的一个格子就是一个cell。

2. 从excel中读取数据

从一个既有的xlsx文件中读取数据,按照excel文件的三个层级,分别做以下三个步骤

1. 打开workbook:

from openpyxl import load_workbook

wb = load_workbook(‘file_name.xlsx’)2. 打开所需的sheet:

我们可以这样打开workbook中的第一个sheet:

ws = wb.get_active_sheet()变量_active_sheet_index用来确定获取哪一个sheet,而默认情况下它被置为0。

也可以通过sheet的名称来获取sheet:

ws = wb.get_sheet_by_name(“sheet_name”)openpyxl似乎没有提供按索引来读取sheet,不过我们总是能很容易地通过sheet_name来实现:

sheet_names = wb.get_sheet_names()

ws = wb.get_sheet_by_name(sheet_names[index])3. 获取对应cell的值:

openpyxl提供可两种方式来读取cell,一是按照excel的习惯用字母来代表列号,例如:

c = ws.cell(‘a4’).value也可以按照行号列号来读取:

d = ws.cell(row = 3, column = 0)3. 将数据写入excel

同读取类似,写入一个excel文件,要经历一下四个步骤:

1. 新建workbook

直接新建一个workbook对象即可:

wb = workbook()2. 新建sheet

默认情况下,新创建的sheet是排在最后的,若想要创建一个排在最前的sheet,可以传入参数0:

ws1 = wb.create_sheet()  # insert at the end

ws2 = wb.create_sheet(0)  # insert at the first position3. 写入数据

直接将要写入的数据赋值给相应的cell即可,若仅仅是修改一个表。可以跳过前两个步骤,不过要注意不要覆盖掉其它数据:

ws.cell(‘b5’) = value1

ws.cell(row = 3, column = 7) = value24. 保存数据

最后写入将数据写入即可,注意若保存路径下有同名的文件的话,之前的文件会被覆盖:

wb.save(‘file_name.xlsx’)

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227615.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午8:54
下一篇 2026年3月16日 下午8:54


相关推荐

  • C#中DllImport用法汇总

    最近使用DllImport,从网上google后发现,大部分内容都是相同,又从MSDN中搜集下,现将内容汇总,与大家分享。大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码

    2022年4月9日
    68
  • avlang php,www.xcnxm.com

    avlang php,www.xcnxm.comDomainName:xcnxm.comRegistryDomainID:2006268495_DOMAIN_COM-VRSNRegistrarWHOISServer:whois.ename.comRegistrarURL:http://www.ename.netUpdatedDate:2016-02-25T06:10:47ZCreationDate:2016-02-2…

    2022年6月12日
    49
  • 5G/NR SSB学习总结[通俗易懂]

    5G/NR SSB学习总结[通俗易懂]6.1SSB概念同步信号和PBCH块(SynchronizationSignalandPBCHblock,简称SSB),它由主同步信号(PrimarySynchronizationSignals,简称PSS)、辅同步信号(SecondarySynchronizationSignals,简称SSS)、PBCH三部分共同组成。6.2SSB特征…

    2022年6月30日
    37
  • SQL三表连接查询

    SQL三表连接查询下面三个表分别是:table1表、table2表、table3表目标:查询A公司的所有30岁以下员工的名字。    employee_id   company_id           1          101           2          101           3           102   …

    2022年5月3日
    55
  • 数学建模中的选址问题_数学建模停车场规划问题

    数学建模中的选址问题_数学建模停车场规划问题选址问题:是指在规划区域里选择一个或多个设施的位置,使得目标最优。四个要素:设施、规划区域、位置(距离)、目标设施:按照设施的空间维度划分,可以将选址问题分为:1.立体选址问题:设施的高度不能被忽略,如集装箱装箱问题。2.平面选址问题:设施的长、宽不能被忽略,如货运站的仓位布局问题。3.线选址问题:设施的宽度不能被忽略,如在仓库两边的传送带布局问题。4.点选址问题:设施可以…

    2025年11月27日
    5
  • 平替OpenClaw(ClawdBot)就是如此丝滑——简单聊聊两款平替Agent

    平替OpenClaw(ClawdBot)就是如此丝滑——简单聊聊两款平替Agent

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号