pythonxlrd读取
‘壹’ python xlrd怎么读取特定行或列的数据
下表从零算起
第一行应该这样写
table.row_values(0)
‘贰’ python xlrd 读取的单元格的值,怎么能确保是文本TEXT类型的,现在某些单元格读出来是NUMBER,有些是BOOL
读取TRUE时返回的是1,是因为TRUE这个值在excel文件中保存时就是真值类型0或1,而不是保存文本TRUE(节省存储空间)。数字也是这样的。
如果你想把读取时都变为文字,有两种方法。
1,在原excel文件中修改。将TRUE真值类型、数字类型转换成文本类型。
2,在xlrd读取过程中加入一些简单的判定,不同数据不同处理。
defread_cell(x,y):
ifcell_type(x,y)==4:#4是真值类型(bool)
return"TRUE"ifcell_value(x,y)==1else"FALSE"
elifcell_type(x,y)==2:#2是数字类型(number)
returnstr(cell_value(x,y))
else:#其他类型不再一一列举,用到时再做增加
returncell_value(x,y)
‘叁’ python 使用xlrd模块读取excel文件时,能否读取单元格的备注
python有很多包可以操作excel单元
其中我用过的有xlrd ,xlwt 一个读一个写, 另外可用 openpyxl或者XlsxWriter 进行读写, 非常简单
读写单元格只需按列表一样读写元素即可
ws['A1'] = 42
a = ws["A2"]
‘肆’ python xlrd怎么读取超链接
xls 可以 ,xlsx应该不行,要用openpyxl,xlrd 对xlsx的支持不太好
‘伍’ python 简单 xls 读取 xlrd
defget_Excel_value_s1(col=0,File_Locaiton='C:Config.xlsx',User_Table='Configuration',):
result=[]
wb=xlrd.open_workbook(File_Locaiton)
sh=wb.sheet_by_name(User_Table)
forrowinrange(2,sh.nrows):
rowValuelist=sh.row_values(row)
get=rowValuelist[col]
result.append(get)
returnresult
forvalueinget_Excel_value_s1():
printvalue
为什么要每次返回下一个值,将所有值添加到列表,一次返回不行吗
‘陆’ 为什么 python xlrd读取不到含有公式的单元格的值
没试过,如果是这样的话。那就是 含有公式的单元格 是动态生成的数据呗。
既然取不到,那就 根据公式 计算出来不就完了。公式应该不会太复杂吧
http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html
一个不错的文章,这些基本就能处理所有数据了。
还有就是 时间日期问题 自己网络一下 应该就可以了
‘柒’ python为什么用xlrd读取一列的数据结果是这样的:[27030.0, u'', u'', u'', u'', u'', u'']
table.row_values(6)
这个改成
table.row_values(5)试一下
或者自己检查一下是不是读取的行错了。
u''表示这个单元格没有内容
再不对的话是不是行列弄反了,试一下
table.col_values(6)
‘捌’ python xlrd 读取值的问题。
#-*-coding:utf-8-*-
importwin32com.client
classeasyExcel:
def__init__(self,filename=None):
self.xlApp=win32com.client.Dispatch('Excel.Application')
iffilename:
self.filename=filename
self.xlBook=self.xlApp.Workbooks.Open(filename)
else:
self.xlBook=self.xlApp.Workbooks.Add()
self.filename=''
defsave(self,newfilename=None):
ifnewfilename:
self.filename=newfilename
self.xlBook.SaveAs(newfilename)
else:
self.xlBook.Save()
defclose(self):
self.xlBook.Close(SaveChanges=0)
delself.xlApp
defgetRange(self,sheet,row1,col1,row2,col2):
"returna2darray(i.e.tupleoftuples)"
sht=self.xlBook.Worksheets(sheet)
returnsht.Range(sht.Cells(row1,col1),sht.Cells(row2,col2)).Value
defsetRange(self,sheet,leftCol,topRow,data):
""".
"""
bottomRow=topRow+len(data)-1
rightCol=leftCol+len(data[0])-1
sht=self.xlBook.Worksheets(sheet)
sht.Range(
sht.Cells(topRow,leftCol),
sht.Cells(bottomRow,rightCol)
).Value=data
#举例,sheet1包含原始记录,现根据条件提取记录,写到sheet2.
if__name__=="__main__":
try:
xls=easyExcel(r'C:UsersNanDesktop est.xlsx')
arr=xls.getRange("Sheet1",2,1,7,3)
res=[]
forname,sex,scoreinarr:
ifname=='张三'andsex=='男':
res.append((name,sex,score))
#数组res就包含你想要的数据了.下面这个只是为了证明.
xls.setRange("Sheet2",1,1,res)
finally:
xls.save()
xls.close()
用牛刀吧..方便快捷生动形象.
‘玖’ Python 调用xlrd读取excel的时候报错
经过测试,发现你的代码在'和C这俩字符之间,有一个不可见的unicode字符,它不占地方,但是确实存在,删掉就好了。
删除的办法是:
1,光标放在'和C之间
2,按一下backspace(退格)键,会发现'没有被删除,但确实有一个字符被删除了。
另一种办法是不要拷贝粘贴,自己手动输入一遍完整路径,也能解决这个问题。