python2處理xlsx混合類型數據

概述

最近在處理一些數據,將之從xlsx中插入到數據庫中,其中有些數據是數字,有些是中英文混合,有些是空值,其中還有特殊的日期格式,即讀取出來是數字,但在Excel中顯示的是某年某月某日,這個只能手動來轉換成文本了。

實現

這個單獨用str()或者repr()轉成字符串都會有問題,而且Unicode格式的數據中有中文時需要encode(‘utf8’)才能看到漢字。所以需要分類討論,分type()=type(u’中文’);=type(None);其他。
含有中文的要encode(‘utf8’),空值賦值爲’’,其他用str()處理即可。

if type(dat) == type(u'中文'):
	dat = dat.encode('utf8')
elif type(dat) == type(None):
	dat = ''
else:
	dat = str(dat)

順便記一下用openpyxl讀數據的基本操作

import openpyxl
data = openpyxl.load_workbook('sj.xlsx')#打開
sheets = data.get_sheet_names()#獲取每個sheet的名字
sheet = data.get_sheet_by_name(sheet_name)#通過名字打開
print sheet.title#大廳sheet標題
rows = sheet.max_row #行數
cols = sheet.max_column #列數
sheet.cell(i+1,j).value#i行j列的值,注意下標從1開始
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章