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(退格)鍵,會發現'沒有被刪除,但確實有一個字元被刪除了。
另一種辦法是不要拷貝粘貼,自己手動輸入一遍完整路徑,也能解決這個問題。