标签:unicode 问题 open() tab 对象 修改 class tar excel
一、安装xlrd模块
二、excel读取操作
1.常用的函数
1)获取book中一个工作表
#coding=utf-8 import xlrd data = xlrd.open_workbook("d:\\test.xls") #打开excel文件 print data.sheets()[0] #通过索引顺序获取sheet对象 print data.sheet_by_index(0) #通过索引顺序获取sheet对象 print data.sheet_by_name("Sheet1") #通过名称获取sheet对象 print data.sheet_names() #返回book中所有工作表的名字 #结果如下 --> <xlrd.sheet.Sheet object at 0x0000000003D969B0> --> <xlrd.sheet.Sheet object at 0x0000000003D969B0> --> <xlrd.sheet.Sheet object at 0x0000000003D969B0> --> [u‘Sheet1‘, u‘Sheet2‘, u‘Sheet3‘]
2)行的操作
#coding=utf-8 import xlrd data = xlrd.open_workbook("d:\\test.xls") sheet = data.sheets()[0] print sheet.nrows #获取该sheet中的有效行数 print sheet.row(0) #返回由该行中所有的单元格对象组成的列表 print sheet.row_slice(0) #默认返回由该行中所有的单元格对象组成的列表 print sheet.row_values(0,1) #默认返回由该行中所有单元格的数据组成的列表 print sheet.row_len(0) #索引值为0的行中有效单元格有几个 #结果如下 --> 10 --> [text:u‘user1‘, text:u‘pwd1‘] --> [text:u‘user1‘, text:u‘pwd1‘] --> [u‘pwd1‘] --> 2
3)列(colnum)的操作
#coding=utf-8 import xlrd data = xlrd.open_workbook("d:\\test.xls") sheet = data.sheets()[0] print sheet.ncols #获取列表的有效列数 print sheet.col(0,0,2) #返回第一行和第二行的单元格对象组成的列表 print sheet.col_slice(0,0,2) #返回第一行和第二行的单元格对象组成的列表 print sheet.col_values(0,0,2) #返回第一行和第二行的单元格数据组成的列表 #结果如下 --> 2 --> [text:u‘user1‘, text:u‘user2‘] --> [text:u‘user1‘, text:u‘user2‘] --> [u‘user1‘, u‘user2‘]
4)单元格的操作
#coding=utf-8 import xlrd data = xlrd.open_workbook("d:\\test.xls") sheet = data.sheets()[0] print sheet.cell(0,0) #返回第一行第一列单元格对象 print sheet.cell_value(0,0) #返回第一行第一列单元格中的数据 #结果如下 --> text:u‘user1‘ --> user1
2.单元格是表格中行与列的交叉部分,它是组成表格的最小单位,可拆分或者合并。单个数据的输入和修改都是在单元格中进行的如:
注意:注意作用域问题,之前获取的sheet之后,都在获取到这个sheet值后,在进行,行和列以及单元格的操作。
问题现象:
#打开文件 file = open(filename,‘rb‘) #打开excel文件 workbook = xlrd.open_workbook(filename) #获取sheet sheet = workbook.sheet_by_name(sheetname)
解决方案:
filename = filename.decode(‘utf-8‘)
filename = unicode(filename,‘utf-8‘)
标签:unicode 问题 open() tab 对象 修改 class tar excel
原文地址:https://www.cnblogs.com/Mr-ZY/p/11868624.html