概述
最近在处理一些数据,将之从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开始