Chinaunix首页 | 论坛 | 博客
  • 博客访问: 682048
  • 博文数量: 111
  • 博客积分: 2109
  • 博客等级: 上尉
  • 技术积分: 1124
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-25 12:11
个人简介

通信码农,Emacs爱好者,业余IOS程序员,更业余的PM

文章分类

全部博文(111)

文章存档

2018年(2)

2016年(2)

2015年(2)

2014年(13)

2013年(21)

2012年(71)

分类: LINUX

2012-09-13 21:41:59

      perl的类库中改写完excel之后,格式丢失的很严重,所有merge之后的空格恢复了一个一个的样子,所有的

com组件出现异常,这是在意料之中的。虽然perl的三个组件全部是基于某OLE的模块,但是我觉得这个山寨

win32::Ole还只是简单的操作。并非完美的控制。尝试在python下对xls文件进行操作。
     
      经过在网上的搜索,查到的一个不错的网站
     
      目前主要是使用XLRD进行xls文件的解析,xlwt进行创建的工作,而xlutils是进行xls文件的修改,其设计的模型

从 此博主有个总结,抄下来:
     
     

中一般使用(excel read)来读取Excel文件,使用(excel write)来生成Excel文件(可以控

制Excel中单元格的格式),需要注意的是,用读 取excel是不能对其进行操作的:xlrd.open_workbook()方法

返回xlrd.Book类型,是只读的,不能对其进行操作。而 xlwt.Workbook()返回的xlwt.Workbook类型的

save(filepath)方法可以保存excel文件。

因此对于读取和生成Excel文件都非常容易处理,但是对于已经存在的Excel文件进行修改就比较麻烦了。不过,

还有一个(依赖于xlrd和xlwt)提供复制excel文件内容和修改文件的功能。其实际也只是在xlrd.Book和

xlwt.Workbook之间建立了一个管道而已,如下图:

      
      


点击(此处)折叠或打开

  1. from xlrd import open_workbook
  2. from xlutils.copy import copy
  3.  
  4. rb = open_workbook('temp.xls')
  5.  
  6. #通过sheet_by_index()获取的sheet没有write()方法
  7. rs = rb.sheet_by_index(0)
  8.  
  9. wb = copy(rb)
  10.  
  11. #通过get_sheet()获取的sheet有write()方法
  12. ws = wb.get_sheet(0)
  13. ws.write(0, 0, 'changed!')
  14.  
  15. wb.save('temp.xls')
这样简单的修改可以实现,但是格式没有保存,在一位任兄的Blog  http://qiujiayu.iteye.com/blog/812972 里提到这么一句代码

   workBook = xlrd.open_workbook(template, on_demand=True, formatting_info=True)

 在打开文件的时候加上 formatting_info=True,测试,改修改格子的format变了,但是比较好的一点是其他的save之后对于原xls文件只是com组件全部失去作用。open function的主要功能明天去查阅文档。
  
    类似于perl的CPAN。Python也有自动安装模块的控制模块-----easy install。
  
    通过ez_setup 脚本来安装也很爽
   
    wget -q
   
    chmod a+x ez_setup.py

    sudo python ez_setup.py

    其实实在不行就下载模块,python install得了。。。

    补充一下刚才搜到一国外哥们在ubuntu下安装easyinstall的办法:

    
sudo apt-get install python-setuptools python-dev build-essential

      I don't know if it will be work,but you can try : )...

    装完easyinstall之后直接 easy_install  xlutils这个。read and wt模块应该都会因为依赖关系而安装。很爽。。

阅读(9270) | 评论(0) | 转发(0) |
0

上一篇:fedora 17下使用CPAN

下一篇:my .emacs

给主人留下些什么吧!~~