Python对Excel操作详解_第1页
Python对Excel操作详解_第2页
Python对Excel操作详解_第3页
Python对Excel操作详解_第4页
Python对Excel操作详解_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精品文档太仓同维电子有限公司 测试中心软件测试科拟制人胡张东审批人xxx时间2013-11-04Python 对 Excel 操作详解文档摘要:本文档主要介绍如何通过 python对office excel进行读写操作,使用了 xlrd、xlwt和xlutils 模块。另外还演示了如何通过Tcl tcom 包又excel操作。关键字:Python、Excel、xlrd、xlwt、xlutils 、TCl、tcom1欢血下载精品文档1 Python 简介Python是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳 定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见

2、的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。与Scheme Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如 py2exe、PyPy、Pylnstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。2 Python 安装Python目前的版本已经更新到 3.4.0 ,本文使用的版本为

3、 2.7.5 ,所有的版本都可以 在python官网/ 下载,至于2.x和3.x版本的具体区别也可以在官 网查看。从官网下载了 python 2.7.5 安装文件python-2.7.5.msi 后,直接双击就可以安装 python 了,可以选择安装路径, 我改为了,然后一路next就完成安装了,安装完成后在C盘下就多了一个文件夹 Python2.7.5 。Python也是一种实时交互语言,可以通过自带的IDLE编写python语句并反馈回显信息,可以通过图1方式调出python IDLE 。| Spirfirit Communi ca.ti onsF

4、TP-LEUEinfcfip Wirtsharlsr3 Module Docs f产 Python也皿rtiMid linei )国 Python M anusls J图12欢血下载精品文档也可以在cmd下输入python,但默认情况下 python并没有添加到 windows环境变量 中,导致在cmd下输入python的时候出现提示"'python'不是内部或外部命令,也不是可运行的程序或批处理文件。",windows下可执行文件在运行时首先在当前目录下搜索,因为 进入cmd下默认路径一般为 C:Documents and SettingsAdminist

5、rator> ,而在这个路径 下是找不到python的,所以提示出错,可以进入到python安装目录下,然后执行python就可以进入交互命令行模式下。如果懒的每次都进入python安装,此时需要将python安装路径添加到系统变量中,然后windows在执行命令的时候会去环境变量中查找路径,具体配置如图2所示,在Path中添加python的安装路径“C:Python275;”,主要路径后面要加” /分号表面这是一个路径的结束,此时无论在哪个路径下都可以执行python调出交互命令行。计篁机名幌件常视要进行大多教改动您必须作为管:I 高级 表作为管Pt生能视觉效果.处理器计划,内存使用用

6、户配置文件与您量录有关的桌面设置FF_W0_HD5r_C.和SWEROTFR. . . 2成一PATHETtTTt?M ;. EHET. E认T : , CMD;. TBST VBE ;. . . . 丫启动和敌障恢复系统启动,系统失败和调试信息错误报告中编辑Q)删除1)取消确定3 Python语法入门3欢血下载精品文档在Python简介中提到Python是一种直译式电脑编程语言,体现在语法中,如要将变 量a赋值为1, Tcl使用命令%set a 1 (本文中为了区分 Tcl和Python的命令,Tcl命令前 会加上"%,否则默认为 Python命令),在python中命令为a =

7、1 ,输出a的值可以直接 输入a,也可以通过print语句输出a的值,命令为print a (在python 3.0 以后版本中, print不再是一个语句,而是一个函数,所以如果想要输出a,用法为print(a)。在Tcl中求1和10的和或者变量之间的加减乘除运算需要使用expr命令,在python则直接写表达式就可以了,如图 3所示。I >» a = i >» a »> 二二二二 S. 1 O = 10 »>5*匕 >» 10*13-10/10图3Python很多功能都是靠模块实现的,比如即lib模块负责ftp

8、功能的实现,math模块囊括了基本数学公式,如果我们想要引用这些模块,需要使用命令import模块名称,如import ftplib 和import math 。如果想使用 math模块中的函数floor ,可以使用命令math.f100r(28.5),语法为“模块.函数”,如果想要直接使用floor函数,必须提前引用,命令为from math import floor ,那样就可以直接使用命令floor(28.5) 了。如果觉得floor这个函数名称太长了或者不好记忆,可以通过变量引用函数,如 f = math.floor ,这样变 量f就充当了 math.floor的功能了。上面提到的模块

9、 即lib 和math都是在python安装的时候已经安装了,而接下来重点介绍的xlrd、xlwt、xlutils模块都不是随python安装的。需要手动下载安装,第5节会详细介绍模块的安装。当成功导入了某个模块后,可以通过函数dir (模块名)查看这个模块包含哪些函数,如果对某个函数的作用不了解,可以通过help函数查看,如help(math.pow)本文只是带领大家入门,python的其他语法可以参考其它资料学习。4 Tcl对Excel操作4欢血下载精品文档在使用python对excel操作之前搜索过如何通过Tcl对excel操彳Tcl本身没有提供对excel操作的命令,可以通过 tcom

10、外部包来调用 excel的接口实现,但是个人感觉实 现起来比较麻烦,msdn网站上虽然提供了 excel的接口,但示例都是针对 VB脚本语言写的, Tcl如果想要调用的话还需要转换,如下是一段简单的 Tcl代码展示如何通过tcom对excel进行操作,但也花了本人不少时间琢磨。# 加载tcom包package require tcomset filename "F:/1.xls"# 创建com实例,打开工作表,下面四句都是套路set excel :tcom:ref createobject "Excel.Application"set workbooks

11、 $excel Workbooksset workbook $workbooks Open $filenameset worksheets $workbook Worksheets# "sheet1"为 sheet 的名称set worksheet $worksheets Item "sheet1"# 创建单元格对象set cells $worksheet Cells# 给单元格B2赋值为“ hsdf ”$cells Item 2 B "hsdf"# 获取sheet的个数并赋值给 sheetCountset sheetCount $w

12、orksheets Count# 获取A1至A15单元的范围对象set range $worksheet Range A1 A15# 给A1至A15单元赋值$range Value2 "abcdefg"# 获取A1至A15的值,并赋值给 A,A是一个列表listset A $range Value2# 设置单元的背景色set interior $range Interior $interior Color expr 0x00FFE05欢血下载精品文档# 设置单元的前景色和字体大小、加粗、斜体、字体set font $range Font$font Color expr 0x

13、FF0000$font Bold 1$font Size 10$font Italic 0$font Name "华文行楷"# 设置单元格的宽度为自动调整 set entire $range EntireColumn $entire AutoFit# 保存文档$workbook Save# 显示Excel $excel Visible 15 xlwt和xlrd模块的安装Python也是通过导入外部模块来实现对excel的操作,xlrd负责对excel的读取,xlwt负责对excel的写入,xlutils依赖于xlrd和xlwt ,可以复制 excel文件。这三个包都可以在网

14、站 http:/下载。本文使用的 xlrd 版本为0.8.0 , xlwt版本 为0.7.5 。从网上下载好 xlrd和xlwt后,解压缩到 C:Python2.7.5Lib 下,此时在命令 行下输入 import xlrd 或者 import xlwt ,会出现提示 ImportError: No module namedxlwt , 这表明还没有安装xlwt模块。python导入一个模块的过程要求有一个叫做“路径搜索”的操作过程,即是在文件系统“预先设定的区域”查找模块文件以加载模块的过程。这个预先设定的区域其实是python搜索路径的一组目录。这个

15、目录保存在sys.path中,如果你想知道python导入模块时会在哪些路径搜索模块,你可以执行以下命令查看搜索路径目录:>>> import sys>>> sys.path'D:pythonshell2.7.5','C:Python2.7.5Libidlelib','C:Python2.7.5l6欢血下载精品文档ibsite-packagessetuptools-1.3-py2.7.egg','C:Python2.7.5libsite-packagesxlutils-1.7.0-py2.7.egg&#

16、39;,'C:Windowssystem32python27.zip','C:Python2.7.5DLLs','C:Python2.7.5lib','C:Python2.7.5libplat-win','C:Python2.7.5liblib-tk','C:Python2.7.5','C:Python2.7.5libsite-packages','C:Python2.7.5libsite-packageswin32','C:Python2.7.5libsit

17、e-packageswin32lib','C:Python2.7.5libsite-packagesPythonwin'在sys.path中找到一个路径为'C:Python2.7.5lib',所以我们把模块解压缩到这个目录下。命令 >>>sys.path.append('C:Python2.7.5lib')在最后添加一个目录,sys.path.insert(0,' C:Python2.7.5lib ')在第一位插入一个目录。解压缩完成并放在正确目录后,在 cmd下进入package当前目录,然后输入命令“

18、C:Python2.7.5Libxlrd-0.8.0>python setup.py install”,安装完成后可以输入import xlrd , dir(xlrd)来确认是否已经安装正确。6 xlrd简单使用方法>>>import xlrd>>>excel = xlrd.open_workbook("C:UsersHuZhangdongDesktopASB测试床环境信息#通过索引读取sheet对象,第一个sheet的索引为读取第3行的所有数据,并以列表的形式存储到row_3读取第3列的所有数据,并以列表list的形式存储到图.xls&qu

19、ot;) #打开文件并将又象存储到excel中>>>sheet = excel.sheet_by_index(0)"0">>>row_3 = sheet.row_values(2) #中>>>col_3 = sheet.col_values(2) #读取第12行第7列的数据,并存储到读取第11行第11列的数据,并存储到读取第7行第8列的数据读取第8列第7行的数据col_3 中>>>cell_12_7 = sheet.cell_value(11,6) #cell_12_7 中>>>cel

20、l_11_11 = sheet.cell(10,10).value #cell_11_11 中>>>cell_7_8 = sheet.row(6)7.value#>>>cell_7_8 = sheet.cel(7)6.value#7欢血下载精品文档>>>numrows = sheet.nrows读取sheet的总行数>>>numcols = sheet.ncols读取sheet的总列数基本上面的命令已经可以满足目前对excel读取的操作了,接下给大家讲解xlwt的用法。7 xlwt简单使用方法#-*- coding: UT

21、F-8 -*- #设置编码格式为utf-8import os,xlwt,datetime #导入模块data =xlwt.Workbook() #新建一个 Workbooksheet = data.add_sheet(u"sheet") #新建一个 sheet ,名称为'sheet1style1 = xlwt.XFStyle() #创建格式 style1style2 = xlwt.XFStyle()style3 = xlwt.XFStyle()#设置字体格式font1 = xlwt.Font() #创建 = 'Times Ne

22、w Roman' # 字体为Times New Roman'font1.bold = True # 加粗font1.colour_index = 2 # 字体颜色为红色,0 = Black, 1= White, 2 = Red, 3 = Green,4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyanfontl.underline = xlwt.Font.UNDERLINE_DOUBLE # 下戈U线类型,UNDERLINE_DOUBLE表双下戈U 线,另 外还有 UNDERLINE_NONEUNDERLINE_SINGLE, UNDERLIN

23、E_SINGLE_ACC,UNDERLINE_DOUBLE, UNDERLINE_DOUBLE_ACCfontl.escapement = xlwt.Font.ESCAPEMENT_SUPERSCRIPT #设置上标fontl.family = xlwt.Font.FAMILY_ROMAN8欢血下载精品文档fontl.height = 0x190 #0x190 是16进制,换成10进制为400,然后除以20,就得到字体的大小为20style1.font = font1 #将创建的font1 字体格式应用到style1 上font2 = xlwt.Font() #创建font2font2.nam

24、e = "Algerian"字体为'Algerian'font2.colourindex = 3 #字体颜色为绿色font2.italic = True #斜体font2.struckout = True删除线font2.height = 0x258 #字体大小为30style2.font = font2 #将创建的font2字体格式应用到style2# 设置列宽sheet.col(0).width = 6000sheet.col(1).width = 12000sheet.set_col_default_width(2)# 设置单元格对齐方式alignme

25、nt = xlwt.Alignment() #创建 alignmentalignment.horz = xlwt.Alignment.HORZ_CENTER #设置水平对齐为居中,May be:HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED,HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTEDalignment.vert = xlwt.Alignment.VERT_CENTER #设 置垂直对齐为居中,May be:VERT_TOP, VERT_CENTER,

26、 VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTEDstyle3.alignment = alignment # 应用 alignment 至U style3 上# 插入时间style3.num_format_str = 'YYYY-MM-DD HH:MM:SS' #设置时间格式sheet.write(1,1,datetime.datetime.now(),style3) #在第 2 行第 2 列插入当前时间,格式为style39欢血下载精品文档# 设置单元格背景颜色pattern_yellow = xlwt.Pattern() #创建

27、pattern_yellowpattern_yellow.pattern = xlwt.Pattern.SOLID_PATTERN #设置填充模式为全部填充pattern_yellow.pattern_fore_colour = 5 #设置填充颜色为yellow 黄色style1.pattern = pattern_yellow #把设置的 pattern 应用到 style3 上pattern_red = xlwt.Pattern() # 创建 pattern_redpattern_red.pattern = xlwt.Pattern.SOLID_PATTERN #设置填充模式为全部填充pa

28、ttern_red.pattern_fore_colour = 2 #设置填充颜色为 red 红色style2.pattern = pattern_red #把设置的 pattern 应用至U style4 上# 设置单元格边框borders = xlwt.Borders() # 创建 bordersborders.left = xlwt.Borders.DASHED #设置左边框的类型为虚线May be: NO_LINE, THIN,MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR, MEDIUM_DASHEDTHIN_DASH_DOTTED,MEDIU

29、M_DASH_DOTTED, THIN_DASH_DOT_DOTTED, MEDIUM_DASH_DOT_DOTTED,SLANTED_MEDIUM_DASH_DOTTED, or 0x00 through 0x0D.borders.right = xlwt.Borders.THIN #设置右边框的类型为细线borders.top = xlwt.Borders.DOTTED #设置上边框的类型为打点的设置左边框线条颜色将borders应用到stylel 上将borders应用到style2 上borders.bottom = xlwt.Borders.THICK #设置底部边框类型为粗线bor

30、ders.left_colour = 0x10 #borders.right_colour = 0x20borders.top_colour = 0x30borders.bottom_colour = 0x40stylel.borders = borders #style2.borders = borders #sheet.write(3, 0, 'HuZhangdong', stylel) #在第 4 行第 1 歹U写入'HuZhangdong',格式引用stylelsheet.write(4, 0, 'YinMengran' , style2) # 在第 5 行第 1 列写入'YinMengran',格式10欠迎下载精品文档引用style2data.save(u'e:3.xls') #保存到 e:X3.xls函数xlwt.Workbook()只能新建一个 excel文档,不能打开一个已经存在的文档,下 一章会讲解如何

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论