1、Python对 Excel操作详解文档摘要:本文档主要介绍如何通过 python对 office excel进行读写操作,使用了 xlrd、xlwt 和 xlutils模块。另外还演示了如何通过 Tcl tcom包对 excel操作。关键字:Python、 Excel、xlrd、xlwt、xlutils、TCl、tcom1 Python 简介Python是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语
2、句块。与 Scheme、Ruby、Perl、Tcl 等动态语言一样,Python 具备垃圾回收功能,能够自动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python 虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如 py2exe、PyPy、PyInstaller 之类的工具可以将Python源代码转换成可以脱离 Python解释器运行的程序。2 Python 安装Python目前的版本已经更新到 3.4.0,本文使用的版本为2.7.5,所有的版本都可以在 python官网 http:/www.python.org/下载,至于
3、2.x和 3.x版本的具体区别也可以在官网查看。从官网下载了 python 2.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
4、的时候出现提示“python 不是内部或外部命令,也不是可运行的程序或批处理文件。 ”,windows 下可执行文件在运行时首先在当前目录下搜索,因为进入 cmd下默认路径一般为 C:Documents and SettingsAdministrator,而在这个路径下是找不到 python的,所以提示出错,可以进入到 python安装目录下,然后执行 python就可以进入交互命令行模式下。如果懒的每次都进入 python安装,此时需要将 python安装路径添加到系统变量中,然后 windows在执行命令的时候会去环境变量中查找路径,具体配置如图 2所示,在Path中添加 python的安
5、装路径“C:Python2.7.5;” ,主要路径后面要加”;”分号表面这是一个路径的结束,此时无论在哪个路径下都可以执行 python调出交互命令行。图 23 Python 语法入门在 Python简介中提到 Python是一种直译式电脑编程语言,体现在语法中,如要将变量 a赋值为 1,Tcl 使用命令%set a 1(本文中为了区分 Tcl和 Python的命令,Tcl 命令前会加上“%” ,否则默认为 Python命令) ,在 python中命令为 a = 1,输出 a的值可以直接输入 a,也可以通过 print语句输出 a的值,命令为 print a(在python 3.0以后版本中,
6、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),语法为“模块.函数” ,如果想要直
7、接使用floor函数,必须提前引用,命令为 from math import floor,那样就可以直接使用命令 floor(28.5)了。如果觉得 floor这个函数名称太长了或者不好记忆,可以通过变量引用函数,如 f = math.floor,这样变量 f就充当了 math.floor的功能了。上面提到的模块 ftplib和 math都是在 python安装的时候已经安装了,而接下来重点介绍的 xlrd、xlwt、xlutils 模块都不是随 python安装的。需要手动下载安装,第 5节会详细介绍模块的安装。当成功导入了某个模块后,可以通过函数 dir (模块名)查看这个模块包含哪些函数
8、,如果对某个函数的作用不了解,可以通过help函数查看,如 help(math.pow)本文只是带领大家入门,python 的其他语法可以参考其它资料学习。4 Tcl 对 Excel 操作在使用 python对 excel操作之前搜索过如何通过 Tcl对 excel操作,Tcl 本身没有提供对 excel操作的命令,可以通过 tcom外部包来调用 excel的接口实现,但是个人感觉实现起来比较麻烦,msdn网站上虽然提供了 excel的接口,但示例都是针对 VB脚本语言写的,Tcl 如果想要调用的话还需要转换,如下是一段简单的 Tcl代码展示如何通过 tcom对 excel进行操作,但也花了本
9、人不少时间琢磨。# 加载 tcom包package require tcomset filename “F:/1.xls“# 创建 com实例,打开工作表,下面四句都是套路set excel :tcom:ref createobject “Excel.Application“set workbooks $excel Workbooksset workbook $workbooks Open $filenameset worksheets $workbook Worksheets# “sheet1“为 sheet的名称set worksheet $worksheets Item “sheet1“
10、# 创建单元格对象set cells $worksheet Cells# 给单元格 B2赋值为“hsdf”$cells Item 2 B “hsdf“# 获取 sheet的个数并赋值给 sheetCountset sheetCount $worksheets Count# 获取 A1至 A15单元的范围对象set range $worksheet Range A1 A15# 给 A1至 A15单元赋值$range Value2 “abcdefg“# 获取 A1至 A15的值,并赋值给 A,A是一个列表 listset A $range Value2# 设置单元的背景色set interior
11、$range Interior$interior Color expr 0x00FFE0# 设置单元的前景色和字体大小、加粗、斜体、字体set font $range Font$font Color expr 0xFF0000$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
12、也是通过导入外部模块来实现对 excel的操作,xlrd 负责对 excel的读取,xlwt 负责对 excel的写入,xlutils 依赖于xlrd和 xlwt,可以复制 excel文件。这三个包都可以在网站http:/www.python-excel.org/下载。本文使用的 xlrd版本为0.8.0,xlwt 版本为 0.7.5。从网上下载好 xlrd和 xlwt后,解压缩到 C:Python2.7.5Lib下,此时在命令行下输入 import xlrd或者import xlwt,会出现提示 ImportError: No module named xlwt,这表明还没有安装 xlwt模
13、块。python 导入一个模块的过程要求有一个叫做“路径搜索”的操作过程,即是在文件系统“预先设定的区域”查找模块文件以加载模块的过程。这个预先设定的区域其实是 python搜索路径的一组目录。这个目录保存在 sys.path中,如果你想知道 python导入模块时会在哪些路径搜索模块,你可以执行以下命令查看搜索路径目录: import sys sys.pathD:pythonshell2.7.5,C:Python2.7.5Libidlelib,C:Python2.7.5libsite-packagessetuptools-1.3-py2.7.egg,C:Python2.7.5libsite-
14、packagesxlutils-1.7.0-py2.7.egg,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.5libsite-packageswin32lib,C:Python2.7.5libsite-packagesPythonwi
15、n在 sys.path中找到一个路径为C:Python2.7.5lib,所以我们把模块解压缩到这个目录下。命令sys.path.append(C:Python2.7.5lib)在最后添加一个目录,sys.path.insert(0, C:Python2.7.5lib )在第一位插入一个目录。解压缩完成并放在正确目录后,在 cmd下进入 package当前目录,然后输入命令“C:Python2.7.5Libxlrd-0.8.0python setup.py install”,安装完成后可以输入 import xlrd,dir(xlrd)来确认是否已经安装正确。6 xlrd 简单使用方法impor
16、t xlrdexcel = xlrd.open_workbook(“C:UsersHuZhangdongDesktopASB测试床环境信息图.xls“) #打开文件并将对象存储到 excel中sheet = excel.sheet_by_index(0) #通过索引读取 sheet对象,第一个 sheet的索引为“0“row_3 = sheet.row_values(2) #读取第 3行的所有数据,并以列表的形式存储到 row_3中col_3 = sheet.col_values(2) #读取第 3列的所有数据,并以列表 list的形式存储到 col_3中cell_12_7 = sheet.cell_value(11,6) #读取第 12行第 7列的数据,并存储到 cell_12_7中cell_11_11 = sheet.cell(10,10).value #读取第 11行第11列的数据,并存储到 cell_11_11中cell_7_8 = sheet.row(6)7.value #读取第 7行第8列的数据cell_7_8 = sheet.cel(7)6.value #读取第 8列第7行的数据