python excel数据处理?

简介: python excel数据处理?

前段时间做了个小项目,帮个海洋系的教授做了个数据处理的软件。基本的功能很简单,就是对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')



相关文章
|
10小时前
|
Python
python_读写excel、csv记录
python_读写excel、csv记录
16 0
|
10小时前
|
Python
python如何读取excel文件,并修改内容?
python如何读取excel文件,并修改内容?
4 0
|
10小时前
|
存储 数据采集 数据可视化
Python列表到Excel表格第一列的转换技术详解
Python列表到Excel表格第一列的转换技术详解
7 0
|
10小时前
|
SQL 数据采集 数据挖掘
构建高效的Python数据处理流水线:使用Pandas和NumPy优化数据分析任务
在数据科学和分析领域,Python一直是最受欢迎的编程语言之一。本文将介绍如何通过使用Pandas和NumPy库构建高效的数据处理流水线,从而加速数据分析任务的执行。我们将讨论如何优化数据加载、清洗、转换和分析的过程,以及如何利用这些库中的强大功能来提高代码的性能和可维护性。
|
10小时前
|
存储 小程序 数据处理
【Python】—— pandas数据处理
【Python】—— pandas数据处理
13 1
|
10小时前
|
机器学习/深度学习 数据可视化 TensorFlow
Python深度学习基于Tensorflow(4)Tensorflow 数据处理和数据可视化
Python深度学习基于Tensorflow(4)Tensorflow 数据处理和数据可视化
13 3
|
11小时前
|
数据采集 数据处理 开发者
Python 中的数据处理技巧:高效数据操作的艺术
Python 在数据处理方面表现卓越,为开发者提供了丰富的工具和库以简化数据操作。在本文中,我们将探讨 Python 中数据处理的一些技巧,包括数据清洗、数据转换以及优化数据操作的最佳实践。通过掌握这些技巧,您可以在 Python 中更加高效地处理和分析数据。
|
10小时前
|
存储 Python Windows
轻松学会openpyxl库,Python处理Excel有如神助
轻松学会openpyxl库,Python处理Excel有如神助
|
11小时前
|
NoSQL Python
在Python中,我们可以使用许多库来处理Excel文件
Python处理Excel常用pandas和openpyxl库。pandas的`read_excel`用于读取文件,`to_excel`写入;示例展示了数据框操作。openpyxl则用于处理复杂情况,如多工作表,`load_workbook`加载文件,`iter_rows`读取数据,`Workbook`创建新文件,写入单元格数据后保存。
25 1
|
10小时前
|
新零售 分布式计算 数据可视化
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析