您所在的位置:小祥子 » 编程 » Python » 正文

自己总结python用xlrd\xlwt读写excel

时间:2015-05-22 编辑:三秋 来源:本站整理

1.首先安装xlrd\xlwt模块

xlrd模块下载地址:

https://pypi.python.org/pypi/xlrd

xlwt模块下载地址:

https://pypi.python.org/pypi/xlwt

linux 安装命令 python setup.py install

windos 安装命令 setup.py install

2.使用方法大全

基础方法推荐请看这里:

http://blog.csdn.net/mr__fang/article/details/7089581

简单方法+例子:

http://www.jb51.net/article/65550.htm

稍微深入一点:

http://www.jb51.net/article/57699.htm

3.自己使用的总结

1.平时的使用看基础方法推荐的博客就够了.

2.写小程序的时候遇到个问题,首先新建一个

file = xlwt.Workbook() #注意这里的Workbook首字母是大写,无语吧

table = file.add_sheet('sheet name',cell_overwrite_ok=True)#新建一个sheet,并加重复操作参数

然后开始写

table.write(0,0,'姓名')
table.write(1,0,'张三')
#写了N多行... 

table.write(999,0,'李四')

保存一份

file.save('一班信息.xls')

然后想用同样的首行(这里首行只写了一行,实际有很多,姓名,学好,性别,婚否,巴拉巴拉)

写另一份excel,就比如上面的是一班,这里写二班把

table.write(1,0,'小王') #这里是二班的小王同学
#写了n多行,但是二班人比较少,很奇葩
table.write(10,0,'小赵')
#二班只有10个人!!

保存另一份

file.save('二班信息.xls')

然后我们打开二班信息,你会发现出来前10个二班本来的信息之外,

11~999一班的同学全跑到二班来了?!!

解决办法

table.wirte(11,0,'')#用空代替掉
#写了n多行,实际程序中用For,
#这里表示下要很辛苦的解决这个私自"转班"的事..
table.wirte(999,0,'')#全部用空替换

最后再保存

file.save('正确的二班信息.xls')

到此,我想总结的第二条结束

3.linux下保存用中文名保存正常,windos下坑爹乱码问题

#coding:utf8

file.save('世界你好')#linux正常,win乱码

file.save(u'世界你好'.encode('GBK'))# win正常

谢谢阅读,欢迎关注,互相学习!~

关键词:读写