您的位置:首页 > 编程语言 > Python开发

Python操作excel(xlrd和xlwt)

2017-08-16 11:11 591 查看
前几天由于要处理很多实验数据,需要把很多excel文件中的数据按照一定的格式汇总到一个excel文件中,于是在网上查阅了一些资料,利用了xlrd和xlwt这两个python库。通过几十行代码就完成了数据的整理汇总工作,节约了大量时间,再也不用麻烦地一个个去复制粘贴了。简要总结一下这两个库最基本的操作。使用这两个库时需要下载安装,直接使用pip install即可,详细安装流程自行百度。

xlrd

该库用于读取已存在excel中的数据

1. 首先需要引入该库

import xlrd


2. 打开已存在的excel文件

MyBook=xlrd.open_workbook("文件所在的绝对路径")


结果返回一个Book类。注意文件的绝对路径要包含文件名及其后缀,且路径中“\”的地方要用“\ \”或用原始字符串。

3. 获取sheet对象

一个excel文件中可能有多个工作表,有三种方法获取指定的工作表

MySheet=MyBook.sheets()[索引号]   # 通过索引获取,起始索引为0


MySheet=MyBook.sheet_by_index(索引号)  # 通过索引获取,起始索引为0


MySheet=MyBook.sheet_by_name(u'表名')  # 通过工作表名获取


4. 获取整行或整列的值

打开的工作表最大行号和列号分别为

nrows=MySheet.nrows  # 最大行号
ncols=MySheet.ncols  # 最大列号


在遍历行列或单元格时不要超出最大行号和列号,否则可能会出现溢出错误

获取一行或一列的单元格值,返回结果为一个数组

RowValue=MySheet.row_values(行号)  #起始行号为0
ColVALUE=MySheet.col_values(列号)  #起始列号为0


5. 获取单元格的值

CellValue=MySheet.cell(行号,列号).value
# 通过行号和列号来获取指定单元格的值,左上角第一个单元格为(0,0)


xlwt

该库用于生成excel文件

1. 首先引入该库

import xlwt


2. 创建一个WorkBooK

MyBook=xlwt.Workbook(encoding="utf-8")
# 注意Workbook首字母大写,encoding参数指定为utf-8允许输出中文


3. 新建一个工作表

MySheet=MyBook.add_sheet("表名",cell_overwrite_ok=True)
# cell_overwrite_ok参数设置为True时允许同一个单元格被重复写入,否则会出现错误


4. 对指定单元格写入数据

MySheet.write(行号,列号,值,[样式])


应用样式

style = xlwt.XFStyle()           #初始化样式
font = xlwt.Font()               #为样式创建字体
font.name = "Times New Roman"    #设置字体
font.bold = True                 #加粗
font.italic = True               #斜体
font.underline = True            #加下划线
font.colour_index = 2            #设置字体颜色为红色
font.height = 20                 #设置字体大小
style.font = font                #为样式设置字体
pattern = xlwt.Pattern()         #为样式创建图案
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = 5  #设置单元格前景色为黄色
style.pattern = pattern          #为样式设置图案
alignment = xlwt.Alignment()     #创建对齐方式
alignment.horz = xlwt.Alignment.HORZ_CENTER   #设置水平对齐方式
# 水平对齐方式(HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED)
alignment.vert = xlwt.Alignment.VERT_CENTER   #设置垂直对齐方式
# 垂直对齐方式(VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED)
style.alignment = alignment       #设置对齐方式
MySheet.write(0,0,"test",style)   #按指定样式写入单元格
# 颜色索引(0:黑色,1:白色,2:红色,3:绿色,4:蓝色,5:黄色,6:紫红....)


合并单元格后写入数据

MySheet.write_merge(单元格1的行号,单元格2的行号,单元格1的列号,单元格2的列号,值,[样式])
# 单元格1和单元格2分别为所合并单元格左上角和右下角的单元格


5. 保存excel文件

MyBook.save("文件路径及文件名")   # 不要忘了文件的后缀名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: