


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Python对Excel操作详解文档摘要:本文档主要介绍如何通过python对officeexcel进行读写操作,使用了xlrd、xlwt和xlutils模块。另外还演示了如何通过Tcltcom包对excel操作。关键字:Python、Excel、xlrd、xlwt、xlutils、TCl、tcom1Python简介Python是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用编进来定义语句块。与SchemeRub
2、y、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够白动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、Pylnstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。2Python安装Python目前的版本已经更新到3.4.0,本文使用的版本为2.7.5,所有的版本都可以在python官网/下载,至于2.x和3.x版本的具体区别也可以在官网查看。从官网下
3、载了python2.7.5安装文件python-2.7.5.msi后,直接双击就可以安装python了,可以选择安装路径,我改为了,然后一路next就完成安装了,安装完成后在C盘下就多了一个文件夹Python2.7.5。Python也是一种实时交互语言,可以通过白带的IDLE编写python语句并反馈回显信息,可以通过图1方式调出pythonIDLE。、透程室面连接所有程序d)r1HodnleBoesUnimtallT/thonIDLECytkeftGUI)it:FythanE.T治肖(ynSpirantBmmijiiWMnM(j)Tf-UHKi;WinFu迎*PyOic-n(commandl
4、ine)/PythonMmlu*1s图1也可以在cmd下输入python,但默认情况下python并没有添加到windows环境变量中,导致在cmd下输入python的时候出现提示“'python'不是内部或外部命令,也不是可运行的程序或批处理文件。”,windowsT可执行文件在运行时首先在当前目录下搜索,因为进入cmd下默认路径一般为C:DocumentsandSettingsAdministrator>,而在这个路径下是找不到python的,所以提示出错,可以进入到python安装目录下,然后执行python就可以进入交互命令行模式下。如果懒的每次都进入python
5、安装,此时需要将python安装路径添加到系统变量中,然后windows在执行命令的时候会去环境变量中查找路径,具体配置如图2所示,在Path中添加python的安装路径“C:Python2.7.5;”,主要路径后面要加”;”分号表面这是一个路径的结束,此时无论在哪个路径下都可以执行python调出交互命令行。3Python语法入门在Python简介中提到Python是一种直译式电脑编程语言,体现在语法中,如要将变量a赋值为1,Tcl使用命令%seta1(本文中为了区分Tcl和Python的命令,Tcl命令前会加上“,否则默认为Python命令),在python中命令为a=1,输出a的值可以直
6、接输入a,也可以通过print语句输出a的值,命令为printa(在python3.0以后版本中,print不再是一个语句,而是一个函数,所以如果想要输出a,用法为print(a)。在Tcl中求1和10的和或者变量之间的加减乘除运算需要使用expr命令,在python则直接写表达式就可以了,如图3所示。>»a=1»>arrirTah=:a>»a4-b11>»10LITO+M/E101>»图3Python很多功能都是靠模块实现的,比如ftplib模块负责ftp功能的实现,math模块囊括了基本数学公式,如果我们想要引
7、用这些模块,需要使用命令import模块名称,如importftplib和importmath。如果想使用math模块中的函数floor,可以使用命令math.floor(28.5),语法为“模块.函数”,如果想要直接使用floor函数,必须提前引用,命令为frommathimportfloor,那样就可以直接使用命令floor(28.5)了。如果觉得floor这个函数名称太长了或者不好记忆,可以通过变量引用函数,如f=math.floor,这样变量f就充当了math.floor的功能了。上面提到的模块ftplib和math都是在python安装的时候已经安装了,而接下来重点介绍的xlrd、x
8、lwt、xlutils模块都不是随python安装的。需要手动下载安装,第5节会详细介绍模块的安装。当成功导入了某个模块后,可以通过函数dir(模块名)查看这个help模块包含哪些函数,如果对某个函数的作用不了解,可以通过函数查看,如help(math.pow)本文只是带领大家入门,python的其他语法可以参考其它资料学习。4Tcl对Excel操作在使用python对excel操作之前搜索过如何通过Tcl对excel操作,Tcl本身没有提供对excel操作的命令,可以通过tcom外部包来调用excel的接口实现,但是个人感觉实现起来比较麻烦,msdn网站上虽然提供了excel的接口,但示例都
9、是针对VB脚本语言写的,Tcl如果想要调用的话还需要转换,如下是一段简单的Tcl代码展示如何通过tcom对excel进行操作,但也花了本人不少时间琢磨。#加载tcom包packagerequiretcomsetfilename"F:/1.xls”#创建com实例,打开工作表,下面四句都是套路setexcel:tcom:refcreateobject"Excel.Application"setworkbooks$excelWorkbookssetworkbook$workbooksOpen$filenamesetworksheets$workbookWorkshee
10、ts#"sheet1"为sheet的名称setworksheet$worksheetsItem"sheet1"#创建单元格对象setcells$worksheetCells#给单元格B2赋值为“hsdf”$cellsItem2B"hsdf"#获取sheet的个数并赋值给sheetCountsetsheetCount$worksheetsCount#获取A1至A15单元的范围对象setrange$worksheetRangeA1A15#给A1至A15单元赋值$rangeValue2"abcdefg"#获取A1至A15
11、的值,并赋值给A,A是一个列表listsetA$rangeValue2#设置单元的背景色setinterior$rangeInterior$interiorColorexpr0X00FFE0#设置单元的前景色和字体大小、加粗、斜体、字体setfont$rangeFont$fontColoreXpr0XFF0000$fontBold1$fontSize10$fontItalic0$fontName"华文行楷"#设置单元格的宽度为白动调整setentire$rangeEntireColumn$entireAutoFit#保存文档$workbookSave#显示Excel$exc
12、elVisible15xlwt和xlrd模块的安装Python也是通过导入外部模块来实现对excel的操作,xlrd负责对excel的读取,xlwt负责对excel的写入,xlutils依赖于xlrd和xlwt,可以复制excel文件。这三个包都可以在网站/下载。本文使用的xlrd版本为0.8.0,xlwt版本为0.7.5。从网上下载好xlrd和xlwt后,解压缩到C:Python2.7.5Lib下,此时在命令行下输入importxlrd或者importxlwt,会出现提示ImportError:Nomodulenamedxlwt,这表明还没
13、有安装xlwt模块。python导入一个模块的过程要求有一个叫做“路径搜索”的操作过程,即是在文件系统“预先设定的区域”查找模块文件以加载模块的过程。这个预先设定的区域其实是python搜索路径的一组目录。这个目录保存在sys.path中,如果你想知道python导入模块时会在哪些路径搜索模块,你可以执行以下命令查看搜索路径目录:>>>importsys>>>sys.path'D:pythonshell2.7.5','C:Python2.7.5Libidlelib','C:Python2.7.5libsite-pack
14、agessetuptools-1.3-py2.7.egg','C:Python2.7.5libsite-packagesxlutils-1.7.0-py2.7.egg','C:Windowssystem32python27.zip','C:Pythonplat-win','C:Python2.7.5liblib-tk','C:Python2.7.5','C:Python2.7.5libsite-packages','C:Python2.7.5libsite-paclib',&
15、#39;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当前目录,然后输入命令“C:Python2.7.5Libxlrd-0.8.0>
16、;pythonsetup.pyinstall”,安装完成后可以输入importxlrd,dir(xlrd)来确认是否已经安装正确。6xlrd简单使用方法>>>importxlrd>>>excelxlrd.open_workbook("C:UsersHuZhangdongDesktopASB测试床环境信息图.xls")#打开文件并将对象存储到excel中>>>sheet=excel.sheet_by_index(0)#通过索弓I读取sheet对象,第一个sheet的索引为"0”>>>row_3=
17、sheet.row_values(2)#读取第3行的所有数据,并以列表的形式存储到row3中>>>col_3=sheet.col_values(2)#读取第3列的所有数据,并以列表list的形式存储到col3中>>>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.val
18、ue读取第7行第8列的数据>>>cell_7_8=sheet.cel(7)6.value读取第8列第7行的数据>>>numrows=sheet.nrows读取sheet的总行数>>>numcols=sheet.ncols读取sheet的总列基本上面的命令已经可以满足目前对excel读取的操作了,接下给大家讲解xlwt的用法。7xlwt简单使用方法#-*-coding:UTF-8-*-#设置编码格式为utf-8importos,xlwt,datetime#导入模块data=xlwt.Workbook()#新建一个Workbooksheet=d
19、ata.add_sheet(u"sheet")#新建一个sheet,名称创建格式stylel为'sheet'stylel=xlwt.XFStyle()#style2=xlwt.XFStyle()style3=xlwt.XFStyle()#设置字体格式fontl=xlwt.Font()#创建='TimesNewRoman'#字体为'TimesNewRomanfontl.bold=True#加粗font1.colour_index=2#字体颜色为红色,0=Black,1=White,2=Red,3=Green
20、,4=Blue,5=Yellow,6=Magenta,7=Cyanfontl.underline=xlwt.Font.UNDERLINE_DOUBLE#下划线类型,UNDERLINE_DOUBLSt双下戈U线,另夕卜还有UNDERLINE_NONE,UNDERLINE_SINGLE,UNDERLINE_SINGLE_ACCUNDERLINE_DOUBLE,UNDERLINE_DOUBLE_ACCfontl.escapement=xlwt.Font.ESCAPEMENT_SUPERSCRIPT#设置上标fontl.family=xlwt.Font.FAMILY_ROMANfontl.height
21、=0x190#0x190是16进制,换成10进制为400,然后除以20,就得到字体的大小为20style1.font=font1#将创建的font1字体格式应用到style1上font2=xlwt.Font()#创建="Algerian"#字体为'Algerianfont2.colour_index=3#字体颜色为绿色font2.italic=True#斜体font2.struck_out=True#删除线font2.height=0x258#字体大小为30style2.font=font2#将创建的font2字体格式应用到style2
22、#设置列宽sheet.col(0).width=6000sheet.col(1).width=12000sheet.set_col_default_width(2)#设置单元格对齐方式alignment=xlwt.Alignment()#仓U建alignmentalignment.horz=xlwt.Alignment.HORZ_CENTER#设置水平对齐为居中,Maybe:HORZ_GENERAHORZ_LEFT,HORZ_CENTER,HORZ_RIGHT,HORZ_FILLED,HORZ_JUSTIFIED,HORZ_CENTER_ACROSS_SEL,HORZ_DISTRIBUTEDa
23、lignment.vert=xlwt.Alignment.VERT_CENTER#设置垂直对齐为居中,Maybe:VERT_TOP,VERT_CENTERVERT_BOTTOM,VERT_JUSTIFIED,VERT_DISTRIBUTEDstyle3.alignment=alignment#应用alignment至Vstyle3上#插入时间style3.num_format_str='YYYY-MM-DDHH:MM:SS'#设置时间格式sheet.write(1,1,datetime.datetime.now(),style3)#在第2行第2列插入当前时间,格式为style3
24、#设置单元格背景颜色pattern_yellow=xlwt.Pattern()#仓U建pattern_yellowpattern_yellow.pattern=xlwt.Pattern.SOLID_PATTERN#设置填充模式为全部填充pattern_yellow.pattern_fore_colour=5#设置填充颜色为yellow黄色stylel.pattern=pattern_yellow#把设置的pattern应用至Vstyle3上pattern_red=xlwt.Pattern()#仓U建pattern_redpattern_red.pattern=xlwt.Pattern.SOLI
25、D_PATTERN#设置填充模式为全部填充pattern_red.pattern_fore_colour=2#设置填充颜色为red红色style2.pattern=pattern_red#把设置的pattern应用至Vstyle4上#设置单元格边框borders=xlwt.Borders()#仓U建bordersborders.left=xlwt.Borders.DASHED#设置左边框的类型为虚线Maybe:NO_LINE,THIN,MEDIUMDASHEDQOTTEDTHICK,DOUBLE,HAIR,MEDIUM_DASHED,HIN_DASH_DOTTEDMEDIUM_DASH_DOT
26、TED,THIN_DASH_DOT_DOTTED,MEDIUM_DASH_DOT_DOTTED,SLANTED_MEDIUM_DASH_DOTTED,or0x00through0x0D.borders.right=xlwt.Borders.THIN#线borders.top=xlwt.Borders.DOTTED#点的borders.bottom=xlwt.Borders.THICK#粗线borders.left_colour=0x10#borders.right_colour=0x20borders.top_colour=0x30borders.bottom_colour=0x40style
27、1.borders=borders#style2.borders=borders#sheet.write(3,0,'HuZhangdong',style1)#列写入'HuZhangdong',格式引用stylelsheet.write(4,0,'YinMengran',style2)#列写入'YinMengran',格式引用style2data.save(u'e:3.xls')#保存到e:X3.xls设置右边框的类型为细设置上边框的类型为打设置底部边框类型为设置左边框线条颜色将borders应用到style1上将borders应用到style2上在第4行第1在第5行第1函数xlwt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物品采购框架协议合同
- 酒店代理低价合同范本
- 自如提前转租合同范本
- 违法解除合同已签协议
- 贸易合作协议合同范本
- 签订欠款发货合同范本
- 淘宝店铺投资合同范本
- 矿山救护协议哪类合同
- 钢管场地租赁合同范本
- 2025至2030中国繁缕行业市场占有率及投资前景评估规划研究报告
- 索尼微单相机A7 II(ILCE-7M2)使用说明书
- 疫苗行业疫苗研发创新报告:2025年重大疾病防控策略与研发创新趋势
- 印刷厂环保数据上报细则
- 一年级新生开学第一课常规训练
- GB/T 45707-2025皮革铬鞣鞋面用坯革规范
- 高空作业外墙漆施工方案
- GB/T 15065-2009电线电缆用黑色聚乙烯塑料
- 陈嘉庚生平介绍(中文+英文版)
- DB21T 3354-2020 辽宁省绿色建筑设计标准
- 我和我的祖国课件
- 语言领域核心经验《学前儿童语言学习与发展核心经验》
评论
0/150
提交评论