Python对Excel操作详解

  • 格式:pdf
  • 大小:310.73 KB
  • 文档页数:11

太仓同维电子有限公司测试中心软件测试科拟制人胡张东审批人xxx时间2013-11-04Python对Excel操作详解文档摘要:本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd、xlwt和xlutils 模块。

另外还演示了如何通过Tcl tcom包对excel操作。

关键字:Python、Excel、xlrd、xlwt、xlutils、TCl、tcom1Python简介Python是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。

它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。

它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块。

与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理存储器使用。

它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。

Python虚拟机本身几乎可以在所有的作业系统中运行。

使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python 解释器运行的程序。

2Python安装Python目前的版本已经更新到3.4.0,本文使用的版本为2.7.5,所有的版本都可以在python官网/下载,至于2.x和3.x版本的具体区别也可以在官网查看。

从官网下载了python2.7.5安装文件python-2.7.5.msi后,直接双击就可以安装python 了,可以选择安装路径,我改为C:\Python2.7.5\了,然后一路next就完成安装了,安装完成后在C盘下就多了一个文件夹Python2.7.5。

Python也是一种实时交互语言,可以通过自带的IDLE编写python语句并反馈回显信息,可以通过图1方式调出python IDLE。

图1也可以在cmd下输入python,但默认情况下python并没有添加到windows环境变量中,导致在cmd下输入python的时候出现提示“'python'不是内部或外部命令,也不是可运行的程序或批处理文件。

”,windows下可执行文件在运行时首先在当前目录下搜索,因为进入cmd下默认路径一般为C:\Documents and Settings\Administrator>,而在这个路径下是找不到python的,所以提示出错,可以进入到python安装目录下,然后执行python就可以进入交互命令行模式下。

如果懒的每次都进入python安装,此时需要将python安装路径添加到系统变量中,然后windows在执行命令的时候会去环境变量中查找路径,具体配置如图2所示,在Path中添加python的安装路径“C:\Python2.7.5;”,主要路径后面要加”;”分号表面这是一个路径的结束,此时无论在哪个路径下都可以执行python调出交互命令行。

图23Python语法入门在Python简介中提到Python是一种直译式电脑编程语言,体现在语法中,如要将变量a赋值为1,Tcl使用命令%set a1(本文中为了区分Tcl和Python的命令,Tcl命令前会加上“%”,否则默认为Python命令),在python中命令为a=1,输出a的值可以直接输入a,也可以通过print语句输出a的值,命令为print a(在python3.0以后版本中,print不再是一个语句,而是一个函数,所以如果想要输出a,用法为print(a))。

在Tcl中求1和10的和或者变量之间的加减乘除运算需要使用expr命令,在python则直接写表达式就可以了,如图3所示。

图3Python很多功能都是靠模块实现的,比如ftplib模块负责ftp功能的实现,math模块囊括了基本数学公式,如果我们想要引用这些模块,需要使用命令import模块名称,如import ftplib和import math。

如果想使用math模块中的函数floor,可以使用命令math.floor(28.5),语法为“模块.函数”,如果想要直接使用floor函数,必须提前引用,命令为from math import floor,那样就可以直接使用命令floor(28.5)了。

如果觉得floor这个函数名称太长了或者不好记忆,可以通过变量引用函数,如f=math.floor,这样变量f就充当了math.floor的功能了。

上面提到的模块ftplib和math都是在python安装的时候已经安装了,而接下来重点介绍的xlrd、xlwt、xlutils模块都不是随python安装的。

需要手动下载安装,第5节会详细介绍模块的安装。

当成功导入了某个模块后,可以通过函数dir(模块名)查看这个模块包含哪些函数,如果对某个函数的作用不了解,可以通过help函数查看,如help(math.pow)本文只是带领大家入门,python的其他语法可以参考其它资料学习。

4Tcl对Excel操作在使用python对excel操作之前搜索过如何通过Tcl对excel操作,Tcl本身没有提供对excel操作的命令,可以通过tcom外部包来调用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[$excel Workbooks]set workbook[$workbooks Open$filename]set worksheets[$workbook Worksheets]#"sheet1"为sheet的名称set worksheet[$worksheets Item"sheet1"]#创建单元格对象set cells[$worksheet Cells]#给单元格B2赋值为“hsdf”$cells Item2B"hsdf"#获取sheet的个数并赋值给sheetCountset sheetCount[$worksheets Count]#获取A1至A15单元的范围对象set range[$worksheet Range A1A15]#给A1至A15单元赋值$range Value2"abcdefg"#获取A1至A15的值,并赋值给A,A是一个列表listset A[$range Value2]#设置单元的背景色set interior[$range Interior]$interior Color[expr0x00FFE0]#设置单元的前景色和字体大小、加粗、斜体、字体set font[$range Font]$font Color[expr0xFF0000]$font Bold1$font Size10$font Italic0$font Name"华文行楷"#设置单元格的宽度为自动调整set entire[$range EntireColumn]$entire AutoFit#保存文档$workbook Save#显示Excel$excel Visible15xlwt和xlrd模块的安装Python也是通过导入外部模块来实现对excel的操作,xlrd负责对excel的读取,xlwt 负责对excel的写入,xlutils依赖于xlrd和xlwt,可以复制excel文件。

这三个包都可以在网站/下载。

本文使用的xlrd版本为0.8.0,xlwt版本为0.7.5。

从网上下载好xlrd和xlwt后,解压缩到C:\Python2.7.5\Lib下,此时在命令行下输入import xlrd 或者import xlwt,会出现提示ImportError:No module named xlwt,这表明还没有安装xlwt 模块。

python导入一个模块的过程要求有一个叫做“路径搜索”的操作过程,即是在文件系统“预先设定的区域”查找模块文件以加载模块的过程。

这个预先设定的区域其实是python 搜索路径的一组目录。

这个目录保存在sys.path中,如果你想知道python导入模块时会在哪些路径搜索模块,你可以执行以下命令查看搜索路径目录:>>>import sys>>>sys.path['D:\\python\\shell\\2.7.5','C:\\Python2.7.5\\Lib\\idlelib','C:\\Python2.7.5\\lib\\site-packages\\setupt ools-1.3-py2.7.egg','C:\\Python2.7.5\\lib\\site-packages\\xlutils-1.7.0-py2.7.egg','C:\\Windows\\system32\\python27.zip','C:\\Python2.7.5\\DLLs','C:\\Python2.7.5\\lib','C:\\Python2.7.5\\lib\\plat-win', 'C:\\Python2.7.5\\lib\\lib-tk','C:\\Python2.7.5','C:\\Python2.7.5\\lib\\site-packages','C:\\Python2.7.5\ \lib\\site-packages\\win32','C:\\Python2.7.5\\lib\\site-packages\\win32\\lib','C:\\Python2.7.5\\lib\\si te-packages\\Pythonwin']在sys.path中找到一个路径为'C:\\Python2.7.5\\lib',所以我们把模块解压缩到这个目录下。