请教问题的英文邮件个xlrd的小问题

您所在的位置: &
自己总结python用xlrd\xlwt读写excel
时间: 编辑:三秋 来源:本站整理
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正常
谢谢阅读,欢迎关注,互相学习!~
热门关键字++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++操作excel文件+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
hw_File = "C:\\Users\\zwx318792\\Desktop\\xls_test\\huawei.xls"
#获得一个操作工作簿的对象
rb_hw = open_excel(hw_File)
&xlrd.book.Book object at 0x036CC7F0&
#获得工作簿所有的sheet个数
rb_hw.nsheets
#获得所有工作簿名字
rb_hw.sheet_names()
['Basic Info', '51.010-2', '51.010-4', '34.123-2', '34.121-2', '36.521-2', '36.523-2', '31.121', '31.124', '34.171', '37.571-3', '34.229', 'MMS', 'SUPL', 'FUMO', 'DM', 'NFC', 'VT', 'AT', 'ChangeRecord']
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++操作sheet表格+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#获得一个sheet对象,它是用来操作sheet的
sheet = rb_hw.sheets()[1]
sheet = rb_hw.sheet_by_index(1)
&xlrd.sheet.Sheet object at 0x&
#sheet名称
sheet.name
'51.010-2'
sheet.nrows
sheet.ncols
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++操作行跟列+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
sheet.row(109)
[text:'A.1/105', number:105.0, text:'EGPRS Multislot Class10', text:'3GPP\xa0TS\xa005.02| B.1\n3GPP TS 45.002| B.1', text:'R99', text:'O', text:'yes | no', text:'No', text:'TSPC_Type_EGPRS_Multislot_Class10', empty:'', text:'是', text:'EGPRS', text:'协议']
#得到的是cell对象组成的列表
sheet.col(2)
[xt:'A.25.1/17', text:'A.25.1/18', text:'A.25.1/19', text:'A.25.1/20', text:'A.25.1/21', text:'A.25.1/22', text:'A.25.1/23', text:'A.25.1/24', text:'A.25.1/25', text:'A.25.1/26', text:'A.25.1/27', text:'A.25.1/28', text:'A.25.1/29', text:'A.25.1/30', text:'A.25.1/31', text:'A.25.1/32', text:'A.25.1/33', text:'A.25.1/34', text:'A.25.1/35', text:'A.25.1/36', text:'A.25.1/37', text:'A.25.1/38', text:'A.25.1/39', text:'A.25.1/40', text:'A.25.1/41', text:'A.25.1/42', text:'A.25.1/43', text:'A.25.1/44', text:'A.25.1/45', text:'A.25.1/46', empty:'', empty:'', empty:'', empty:'', empty:'', text:'A.27/1', text:'A.27/2', text:'A.27/3', text:'A.27/4', text:'R', text:'R1', text:'R2', text:'R3', text:'R4', text:'R5', text:'R6', text:'R7', text:'R8', text:'R9', text:'R10', text:'R11', text:'R12']
#得到的是cell对象组成的列表
#获得某行(列)某几个单元格的内容
row = sheet.row_slice(0,1,6)
print(row)
[text:'3GPP TS 51.010-2', empty:'', empty:'', empty:'', text:'V12.5.0']
col = sheet.col_slice(3,5,7)
print(col)
[text:'3GPP TS 05.05| 2\n3GPP TS 45.005| 2\n\n', text:'3GPP TS 05.05| 2\n3GPP TS 45.005| 2\n\n']
#得到的是cell对象组成的列表
#我们还可以单独获得行(列表)的某个单元格的值或者type
row = sheet.row_values(0,1,6)
print(row)
['3GPP TS 51.010-2', '', '', '', 'V12.5.0']
row = sheet.row_types(2,3,4)
print(row)
array('B', [0])
col = sheet.col_values(2,3,5)
print(col)
['Type of Mobile Station', 'Feature "A" is used for "applicability" that is referenced in 51.010-2 for many test cases.\r\nYou will find the description in Annex B of this specification.']
col = sheet.col_types(2,3,5)
print(col)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++操作单元格+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#获得一个cell对象,这个对象时用来操作单元格的
cell = sheet.cell(109,7)
print(cell)
#获得单元格的类型
print(cell.ctype)
sheet.cell_type(109,7)
#获得单元格的内容
print(cell.value)
sheet.cell_value(109,7)
#序列转为单元格命名
cell = cellname(2,2)
print(cell)
cell = cellnameabs(2,2)
print(cell)
cell = colname(3)
print(cell)
阅读(...) 评论()}

我要回帖

更多关于 发邮件向老师请教问题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信