`
doujiu
  • 浏览: 90261 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

【转】使用Python操作XLS文件

阅读更多
      有一次TE需要一个**信息列表,我用python导出了一个txt文件丢给了他们,结果他们很不悦哇,呵呵,因为他们要把几百项数据人肉到xls文件中 作为列表输出,工作量太大,便要求我导出成xls文件然后再给他们,我以编程实现太难推脱了,今天看了下python操作excle的方法,发现相当简 单,呃,苦了TE们……

      我在网上找了下,发现至少有两种方法,第一种是直接操作excle的com库,当然python自带的lib里面已经给我们封装好了实现,直接使用就可以 了,win32com.client,这种方法甚至可以直接把excle的进程调用起来。用法很简单,网上的文章也汗牛充栋,就不详细解说了,给个小例子 吧,嘻嘻。这种只能在windows下运行,并且需要安装MS Excel。

  1. # -*- coding: utf-8 -*-  
  2. from win32com.client import constants, Dispatch  
  3.   
  4. xlsApp = Dispatch("Excel.Application")  
  5. # 通过赋值Visible为True或者False可以控制是否 调出excle  
  6. xlsApp.Visible = 1  
  7.   
  8. # xlsBook = xlsApp.Workbooks.Open("c:\\magictong.xls")  
  9. # xlsSht = xlsBook.Worksheets("sheet1")  
  10.   
  11. xlsBook = xlsApp.Workbooks.Add()  
  12. xlsSht = xlsBook.Sheets.Add()  
  13. xlsSht.Cells(23).Value = "Tecent QQ"  
  14. xlsSht.Cells(23).Font.Color = 0xff0000  
  15.   
  16. xlsSht.Name = "GCD go to bell"  
  17. xlsBook.SaveAs("c:\\magictong.xls")  
  18. xlsApp.Quit()  
  19.   
  20. print "__end"  

      第二种方法是使用pyExcelerator开源库,这个可以到http://sourceforge.net/projects/pyexcelerator/去 下载,不过这个链接不是很好下,另外我传了一份到csdn上面也可以去下,比较稳定,http://d.download.csdn.net/down/1884158/magictong。 是一个zip包,解压后的文件如下:

      examples目录是给出的很多小例子,很全面,把这些例子搞明白,基本上使用pyExcelerator的基本方法你也就全搞明白了,其他目录不用管 了,tools目录里面是一些转换工具,从xls文件转换到txt啦,html啦,有兴趣也可以看看。下面说怎么安装吧,其实readme.txt里面已 经说的很清楚了,仔细看下这个文件吧,嘿嘿,这个目录下还有一个setup.py文件,这个文件是用于库的安装的,安装方法是python setup.py install,在win32下直接写个bat文件把这句写进去,放在和setup.py同一级目录,直接运行就over了,里面有cmd.bat文件是 我加在里面的。

      安装好了,咱们就开始使用吧,先看看解析xls文件,简单几句就搞定了:

  1. from pyExcelerator import *  
  2. sheets = parse_xls("c:/a.xls")  
  3. print sheets  

      xls的源文件如下所示:

      输出可不简单:

  1. [(u'Sheet1', {(01): 1.0, (73): 10.890000000000001, (00): u'tonglei', (11): u'qq', (22): u'\u7acb\u91cc\u4e09\u77f3', (03): 5.0, (02): 2.0}), (u'Sheet2', {}), (u'Sheet3', {})]  

      仔细研究下这个数据,最外层是一个list,里面有三个元组,对应三个sheet,每个元组有两项数据,第一个是sheet的名字,如"Sheet1", 第二项是一个字典,字典中的每一项的key是一个以xls文件的行列两项为元素的元组,而value就是该行列对应的数值,不过这个里面的类型可能就不会 像xls里面那么丰富了。得到了这些数据,能干什么……我就不说了。

      再看看怎么写xls文件:

  1. # -*- coding: cp936 -*-  
  2. from pyExcelerator import *  
  3.  
  4. # 创建一个工作表  
  5. w = Workbook()  
  6. # 增加一个sheet并设定名称  
  7. ws = w.add_sheet(u"中文的sheet")  
  8.  
  9. # 设置样式  
  10. font0 = Font()  
  11. font0.name = 'Times New Roman'  
  12. font0.struck_out = True  
  13. font0.bold = True  
  14.   
  15. style0 = XFStyle()  
  16. style0.font = font0  
  17.   
  18. ws.write(1, 1, u"magictong", style0)  
  19. ws.write(1, 2, 45)  
  20.  
  21. # 我想写一个数值  
  22. style1 = XFStyle()  
  23. style1.num_format_str = "0"  
  24. ws.write(2, 4, 12, style1)  
  25. ws.write(2, 5, 4, style1)  
  26.  
  27. # 保存  
  28. w.save("c:\\mini.xls")  

      输出xls文件如下:

 

      输出格式是很多的,可以看一个自带的例子:

  1. #!/usr/bin/env python  
  2. # -*- coding: windows-1251 -*-  
  3. # Copyright (C) 2005 Kiseliov Roman  
  4. __rev_id__ = """$Id: num_formats.py,v 1.1 2005/07/20 07:24:11 rvk Exp $"""  
  5.   
  6.   
  7. from pyExcelerator import *  
  8.   
  9. w = Workbook()  
  10. ws = w.add_sheet('Hey, Dude')  
  11.   
  12. fmts = [  
  13.     'general',  
  14.     '0',  
  15.     '0.00',  
  16.     '#,##0',  
  17.     '#,##0.00',  
  18.     '"$"#,##0_);("$"#,##',  
  19.     '"$"#,##0_);[Red]("$"#,##',  
  20.     '"$"#,##0.00_);("$"#,##',  
  21.     '"$"#,##0.00_);[Red]("$"#,##',  
  22.     '0%',  
  23.     '0.00%',  
  24.     '0.00E+00',  
  25.     '# ?/?',  
  26.     '# ??/??',  
  27.     'M/D/YY',  
  28.     'D-MMM-YY',  
  29.     'D-MMM',  
  30.     'MMM-YY',  
  31.     'h:mm AM/PM',  
  32.     'h:mm:ss AM/PM',  
  33.     'h:mm',  
  34.     'h:mm:ss',  
  35.     'M/D/YY h:mm',  
  36.     '_(#,##0_);(#,##0)',  
  37.     '_(#,##0_);[Red](#,##0)',  
  38.     '_(#,##0.00_);(#,##0.00)',  
  39.     '_(#,##0.00_);[Red](#,##0.00)',  
  40.     '_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)',  
  41.     '_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',  
  42.     '_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)',  
  43.     '_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',  
  44.     'mm:ss',  
  45.     '[h]:mm:ss',  
  46.     'mm:ss.0',  
  47.     '##0.0E+0',  
  48.     '@'     
  49. ]  
  50.   
  51. i = 0  
  52. for fmt in fmts:  
  53.     ws.write(i, 0, fmt)  
  54.   
  55.     style = XFStyle()  
  56.     style.num_format_str = fmt  
  57.   
  58.     ws.write(i, 4, -1278.9078, style)  
  59.   
  60.     i += 1  
  61.   
  62. w.save('num_formats.xls')  

       可以运行一下,看看都有些什么格式的可以输出,不过我找了下,不知道怎么输出一个标准的数值。




分享到:
评论

相关推荐

    python中xls转xlsx代码、操作说明、相关第三方库安装文件及安装方式

    使用`pandas`读取xls文件,然后使用`pandas`的`to_excel`方法将其保存为xlsx格式。以下是一个简单的转换示例: ```python import pandas as pd # 读取xls文件 xls_data = pd.read_excel('input_file.xls') ...

    Python对xls文件进行写操作代码实现

    语言为Python3, 文件类型只能为xls文件,文件中的路径根据自己的需要来修改

    Excel xls文件转CSV Python

    本篇将详细讲解如何使用Python编程语言来实现Excel xls文件批量转换为CSV格式,以及涉及的关键库——xlrd。 首先,我们需要理解Python中的文件操作。Python提供了内置的`open()`函数来读写文件,对于CSV文件,我们...

    Python批量将文件夹中xls文件批量转换为xlsx

    ### Python批量将文件夹中xls文件批量转换为xlsx的知识点 #### 1. Python语言基础 - **Python编程环境**:Python是一种解释型的高级编程语言,适合进行快速开发。 - **函数定义**:通过`def`关键字可以定义一个函数...

    python脚本实现xls(xlsx)转成csv

    ### Python脚本实现XLS(XLSX)转CSV的知识点详解 #### 一、背景介绍 在日常工作中,我们经常需要处理各种类型的电子表格数据,其中最常用的两种格式是Microsoft Excel的`.xls`(Excel 97-2003工作簿)和`.xlsx`...

    使用matlab或python将txt文件转为excel表格

    本文主要讨论如何使用MATLAB和Python这两种编程语言将文本文件(.txt)转换为Excel电子表格(.xls 或 .xlsx)。这两种语言都有强大的数据处理库,使得这个任务变得相对简单。 首先,我们来看MATLAB的实现方式。...

    python与XLS

    如果你需要处理老版本的XLS文件,`xlrd/xlwt`库可以派上用场。 2. **创建Excel文件** 使用`openpyxl`,你可以创建一个新的工作簿,然后添加工作表。每个工作表都是一个二维的数据结构,可以像操作Python列表那样...

    python将Word、Excel和PPT批量转成PDF文档

    办公自动化python将Word、Excel和PPT批量转成PDF文档,win32com操作word文档、Excel表格和PPT文档,WPS转为PDF文件。提高办公效率,快速阅读office文件,保护office文件格式和文件安全。

    python 实现KML转换为Excel的工具 附源码

    接下来,我们要介绍`xlwings`库,它是Python操作Excel的强大工具。它可以让我们以类似Excel的语法创建、修改和操作Excel工作簿。`xlwings`库提供了对VBA(Visual Basic for Applications)函数的访问,使得我们可以...

    python 实现批量xls文件转csv文件的方法

    `getvalue`方法用于读取指定的XLS文件,并将其内容存储到一个列表中。它首先打开Excel文件,然后遍历每一行和每一列,获取单元格的值。如果单元格的值不是浮点数,那么将其转换为GBK编码,以便正确处理中文字符。 `...

    python将excel文件转换为txt文件

    本文档介绍了一个使用Python编写的简单程序,其功能是将Excel文件转换为TXT文件格式。此过程涉及两个主要步骤:首先读取Excel文件并将其内容写入一个临时TXT文件;然后对这个临时文件进行处理,移除每行开头的数字和...

    用于XLS文件转换的XLS2XML

    本文将深入探讨“XLS2XML”工具,以及如何使用它来实现XLS文件到XML的转换。 “XLS2XML”是一个专门设计用于将XLS文件转换为XML格式的程序。这个工具的源码提供给开发者,让他们可以理解其工作原理,进行定制化修改...

    使用OEM定义的CAN矩阵(.xls)生成CANdbc文件。_Python_Ba.zip

    2. **读取XLS文件**:使用`pandas.read_excel()`函数加载Excel文件,并将其转换为DataFrame。 ```python data = pd.read_excel('OEM_CAN_matrix.xls') ``` 3. **解析DataFrame**:遍历数据,提取帧ID、DLC、信号等...

    利用python操作Excel文件实现数据自动化处理的python项目.zip

    【标题】:“利用python操作Excel文件实现数据自动化处理的python项目” 该项目主要展示了如何使用Python进行Excel文件的操作,实现数据的自动化处理。Python中的几个关键库,如pandas、openpyxl、xlrd和xlwt,是...

    如何读写EXCEL xls文件

    首先,你需要了解的是,读写XLS文件通常需要借助第三方库,因为标准的编程语言如Python、Java等并没有内置支持。以下是一些常用的库: 1. **Python**: - `xlrd`:用于读取XLS文件,提供了丰富的API来访问单元格...

    多表汇总排序程序+excel格式转换+python离线配置文件.rar

    这个工具能够将xls文件转换为xlsx,确保兼容性和更好的性能。 4. **Python离线配置文件**:“python配置.rar”可能包含Python环境的配置文件,使得用户无需联网即可安装和运行相关Python库,这对于没有稳定网络连接...

    Python操作Excel生成数据库定义。

    这篇博文“Python操作Excel生成数据库定义”探讨了如何利用Python来读取、处理Excel文件,并根据这些数据创建数据库结构。在这个过程中,我们可以使用Python的几个库,如pandas和openpyxl,它们提供了方便的接口来...

    DBF文件转换导出Excel

    使用pandas,可以方便地读取DBF文件,通过DataFrame对象进行数据操作,然后将DataFrame写入Excel文件。 "使用说明.txt"文件应该是关于如何运行和使用这个Python脚本的指南,包括可能需要安装的库、运行命令以及可能...

    powerbuilder使用python程序导入excel文件

    当我们需要将Excel文件的数据导入到数据库时,可以利用Python进行预处理,然后通过PowerBuilder进行后续操作。本话题将详细介绍如何利用Python将Excel文件转换为带制表符的TXT文本,并在PowerBuilder中调用这个过程...

    Python-python上传excel表格数据到ftp服务器

    通过学习以上步骤和实际代码,你可以掌握在Python环境中使用FTP进行文件传输的核心知识,这对于在开发中处理文件传输需求非常有用。同时,了解`ftplib`库和相关数据处理库的用法,有助于提升你在网络编程和数据处理...

Global site tag (gtag.js) - Google Analytics