• 收藏
  • 加入书签
添加成功
收藏成功
分享

基于Python的Excel应用探讨

黄健 杨霞 杜丽君
  
天韵媒体号
2024年16期
乐山师范学院电子信息与人工智能学院 四川乐山 614000

摘要:Python是一种计算生态语言,本文介绍了基于Python的第三方数据库,创建修改Excel数据,能在工作中方便调用Excel的信息,提高工作效率。

关键词:Python;Excel

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言,继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性。应用在很多领域,处理能力非常的强。Excel是很实用的软件,它的功能和方便性在不断地增强,功能越来越强大,但处理繁杂且数量众多的电子表格数据是一项既麻烦,又费时的问题,随着Python的第三方库与Excel表格进行结合应用以后,这个问题便被完美的解决,笔者针对日常工作中需要处理的繁琐的EXCEL数据如何使用python来协助完成,做了详细阐述。

一、创建Excel

在Python中可以直接创建Excel文件,如果要创建文件,就需要用到xlwt模块。该模块 是 Python 用来在 Excel 写入数据和格式化数据的工具包,可以实现创建表单、写入指定单元格、指定单元格样式等人工实现的功能,完全支持 Unicode,不需要任何的 Excel 或者 COM 服务器就能在任意的平台生成 电子表格。唯一的要求就是要 Python 2.3 到 2.7。

代码如下:

xls = xlwt.Workbook()  #新建工作簿

sht1 = xls.add_sheet(“Sheet1”) #新建工作表

再用代码xls.save#完成创建

以上代码实现了在E盘创建数据表文件。

在Python中也可以用到OpenPyXL,该程序包是一个强大的Python库,用于处理Excel文件,允许读取、编辑和创建工作簿和工作表。无论是需要自动化处理大量数据,还是创建报告,该程序包都是一个强大的工具。

部份代码如下:

from openpyxl import book1

wb = book1() # 创建一个新的工作簿

ws = wb.active# 选择默认的工作表

ws.append([4, 5, 6])# append方法插入一行数据

最后用wb.save 保存工作簿到文件

二、读写Excel

1、使用Pandas显示excel里的内容

在Python中如果要显示Excel文件里面的内容,可以用Pandas。该程序库是 Python 语言的一个扩展程序库,用于数据分析。该程序库是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。是一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。该程序包可以从各种文件格式比如 CSV、JSON、SQL等等导入数据。并且可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。

代码如下:

import pandas as fe

rd1=fe.read_excel('t1.xlsx')

print(rd1)

以上代码会显示出t1里的所有数据,并显示出该表格有几行几列。如果表格里数据只需显示前5行,print(rd1.head(5))。如果只需显示后5行,print(rd1.tail(5))。

该程序库读取数据表文件的方式还有:指定索引列读取,这种读取方式,适合数据表里的数据,本身有一列表示序号的情况;指定工作表读取;取消header读取;指定读取格式。

2、使用xlrd读取Excel文件

在Python语言中用于读取excel表格内容的库是xlrd。该模块是纯Python编写的数据表格处理接口模块。在完成数据文件打开后,可以通过sheet_by_index函数获取对应的工作表,再通过cell_value( )函数获取对应单元格的值。当然也可以通过col_values( )获取整列数据,返回的数据是列表型,使用nrows或.ncols获取行数和列数。因此,该程序库提供了快捷的数据表读取方式。

具体步骤是:首先打开工作簿,打开指定路径对应的数据表文件,返回数据表文件对应的工作簿对象。再选择工作表,一个工作簿中可能包含多个工作表,数据表文件是一个工作簿,如果里面包含了两个工作表,那么获取该文件内容的时候需要先确定,需要获取的数据来源于哪个工作表。

3、使用PyExcelerator写入excel文件

使用该程序库的优点是,不需要WinCOM支持,没装Office也 可以生成数据表。表格读取方法是:sheets=parse_xls( ),返回一个列表,每一项是一张工作表的数据,每一项本身是一个二元组的数据结构(表名,单元格数据),单元格数据是一个字典结构,key是单元格的索引,value是单元格的数据。如果要获取数据表文件的第N张工作表的第i行第j列的单元格数据,代码是:sheets[n][1][(i,j)]。也可以使用该程序库将数据写入数据表文件。

三、对Excel里的数据进行计算

1、统计Excel里的数据

Xlrd可以统计数据表里的数据, 使用SheetList读取电子表到列表,并获取所有的工作表名称。

用该程序库读 取数据表文 件,不会设计过多的数据结构和字典,无需进行多余的判断操作,并且读取 过程和代码结构清晰,便于代码的阅读,降低代码维护难度。

2、筛选Excel里的数据

筛选可以使用pandas,读取数据,计算,最后汇总成一张新表。代码如下:

Iimort pandas as td

Fe=td.read.excel(“fe1.xlsx)

最后再用Fe_sum进行统计。

四、对Excel文件的合并和拆分

日常生活中,需要将相同列结构的数据表合并到一个文件中,方便进行下一步分析。在合并文件之前需要做以下工作:将需要合并的数据表放入同个文件夹,方便python 对需要合并的数据表的读取;用Python 的 pandas 包新建一个空白的数据框,用于放入需要合并的数据表的数据;使用循环语句依次读取文件夹中数据表的数据;将合并后的数据框输出成为工作表。

报表拆分是报表合并工作的逆操作,选择文档中信息相同的数列,以筛选功能,将其选出,并且将筛选获取的相同数据完整保存于新文档中。先获取源文件,文件名,拆分条件,最后按拆分条件分别保存数据到列表,再用循环将数据分布保存成文。

五、对Excel文件的美化

可以使用xlwings库,该程序库是 Python 操作数据表的库之一,主要作为两门语言的交互工具。该程序库可以实现通过宏调用Python脚本,以此来完成大规模复杂数据分析的工作,并支持对xls和xlsx文件的读写,相对于其他第三方库xlrd,xlwd等等效率高,可扩展性强。可以pandas无缝连接,也可以调用Excel文件中VBA写好的程序,以及让VBA调用用Python写的程序。

1、修改行高列宽

使用sheet.range( ).row_height修改行高,使用sheet.range

( ).column_width 修改列宽。

2、获取、设置及清除颜色格式

使用print(sheet.range( ' ' ).color)#设置颜色,清除颜色sheet.range( '  ' ).color = None

综上所述,通过利用Python可以将EXCEL大量的数据进行迅速有效的自动化处理,减轻日常的工作量,提高工作效率。

*本文暂不支持打印功能

monitor