python2處理xlsx混合型別資料
阿新 • • 發佈:2018-12-18
概述
最近在處理一些資料,將之從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開始