Python第三方库在Excel文件读写中的应用

2019-12-01 11:24刘卫华史婷婷许学添
电子技术与软件工程 2019年16期
关键词:底纹类库电子表格

文/刘卫华 史婷婷 许学添

Python是一种以“优雅、明确、简单”为设计理念的计算机程序设计语言,而Excel则是Windows平台下应用最为广泛的电子表格处理软件。在过去,对于很多Excel应用人员来说,处理繁杂且数量众多的电子表格数据是一项既麻烦,又费时的问题,但随着Python的第三方库与Excel表格进行结合应用以后,这个问题便被完美的解决,很多工作人员只需要打几行代码便可以轻松完成工作。而在Python的第三方库中,pyExcelerator与xlrd就是用来操作Excel文件的第三方类库模块,本文也将围绕着这两种类库模块在Excel中的应用进行详细介绍说明。

1 pyExcelerator与xlrd

pyExcelerator是在Python的所有第三方类库中主要应用于Excel文件的类库,pyExcelerator不仅可以完全支持UNICODE,还支持各种格式设置,也正是基于此,其才能对Excel文件实施各种操作。在实际操作中,pyExcelerator的Workbook和Worksheet会分别对应Excel的Book和Sheet,但实际上一个Workbook可能会包含多个Worksheet,这也使得很多时候pyExcelerator与Excel的文件之间会出现互相不对应的情况,出现读取困难问题。而且因为pyExcelerator不会提供Excel表格的各种诸如行数、列数等关键数值的访问接口,也不支持对空数据的处理,所以pyExcelerator类库不太适合用于对Excel的写入处理。

xlrd虽然同pyExcelerator一样,都是Python的第三方类库,并且都是主要用于处理Excel表格,但相比较pyExcelerator来说,xlrd的读取操作更加便捷简单,但有优点便会有缺点,xlrd虽然读取速度和方式更加方便快捷,却不能对Excel表格实施写入操作,所以在进行Excel表写入的时候,还是需要用pyExcelerator的。

2 Python第三方库在Excel读取中的应用

因为xlrd在读取Excel文件上更具有优势,所以本文便主要在Excel读取中应用xlrd类库来进行。

xlrd在进行Excel文件读取时,可以快速的通过读取文件来得到其内部的表格内容,然后在通过读取表格内容读取单元格与单元格内的内容,不需要再对单元格的值进行重复读取,并且可以通过对表格的行数和列数来对表格实施遍历读取,进而获取整个表格的所有数据。

一般来说,一个Excel表格在新建完成后都至少会有三张表:分别是sheet1、sheet2、sheet3。假如sheet2中的B2、B3、B4有内容,那么用xlrd模块读取Excel的代码如下:

import xlrd #导入扩展包

data=xlrd.open_workbook('book.xls') #打开Excel文件读取数据

table=data.sheet_by_index(2) #通过索引顺序获取第二个工作表

nrows=table.nrows

ncols=table.ncols #获取行数和列

ctype,value,xf

table.cell(i,j) #单元格的值

3 Python第三方库在Excel写入中的应用

3.1 建立单元格

因为xlrd模块不支持Excel文件的写入修改操作,所以在进行Excel写入应用中,本文主要是采用pyExcelerator模块来进行。首先用Workbook定义一个Excel文件,然后再次使用Workbook定义Excel文件中的一页,最后再执行写入流程,具体代码如下:

coding=utf-8 #定义字体

from pyExcelerator import *#导入模块

w=Workbook() #生成工作簿

ws=w.add_sheet(’你好')#将第一个工作表改名为你好

ws.write(i,j,value)#插入单元格

ws.write(2,2,'你好',style0)#在工作表的B2单元格中写入内容“你好”

w.save(‘你好.xls’)#保存文件,名为你好

3.2 设置列宽

使用pyExcelerator对Excel表格的列宽代码如下:

coding=utf-8

frompyExcelerator import *

w=Workbook()

ws=w.add_sheet(’你好')

ws.write(1,1,’你好’)

Ws.col(1).width=80 #返回第colnum列的对象,并通过调整width属性来改变此列对象的宽度

w.save(‘你好.xls’)

3.3 设置单元格边框

使用pyExcelerator模块来对Excel表格进行操作,不仅可以用来建立Excel表格,并对其内部的内容属性实施修改,还可以改变Excel表格的每一个边框属性进行设置,这个修改是通过pyExcelerator模块中的borders对象来完成的,具体代码如下:

borders=Borders()

borders.left=borders.DOUBLE #设置左边框为双线

borders.right=borders.DOUBLE #设置右边框为双线

borders.top=borders.NO_LINE #设置上边框不显示边框线

borders.bottom=borders.NO_LINE #设置下边框不显示边框线

borders.diag=borders。DOUBLE #设置对角线

borders.top_colour=#ff0000 #设置上边框颜色

borders.diag_colour=#ff0000 #设置对角线颜色

style=XFStyle()

style.borders=borders

w=Workbook()

ws.write=w.add_sheet(’你好’)

ws.write(i,j,value)

w.save(’你好.xls’)

3.4 设置单元格底纹

与设置单元格边框有所不同,设置单元格的底纹所使用的却是pyExcelerator模块中的pattern对象,这个对象可以有效的设置单元格底纹的各种属性,包括有pattern(图案索引)、pattern_fore_colour(前景色)、pattern_back_color(背景色),具体设置代码如下:

pattern=Pattern()

pattern.pattern=0 设置单元格底纹为图片索引

pattern.pattern_fore_colour=#ff0000设置底纹前景色

pattern.pattern_back_color=#ff0000设置底纹背景色

style=XFStyle()

style.pattern=pattern

w=Workbook()

ws.write=w.add_sheet(’你好’)

ws.write(i,j,value)

w.save(’你好.xls’)

4 总结

通过Python第三方库来对Excel电子表格进行操作,不仅可以简化相关工作人员的工作强度,还有利于对其实施二次编辑或者操作,特别是针对一些系统自动生成导出的文件来说,应用Python第三方库更是可以实现“自动完成”和“自动更新”,从而有效提升企业对数据的处理效率,提升企业的工作效率。因此,对如今的各大企业来说,通过Python第三方库来操作Excel表格,在数据处理工作中具有极大的价值与作用,值得推广分享。

猜你喜欢
底纹类库电子表格
浅谈电子表格技术在人事管理中的应用
基于Excel电子表格的体育成绩统计软件设计
利用“查找”批量设置蓝色底纹
在Word中巧妙绘制漂亮分割线
巧用EXCEL电子表格计算土地面积