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开始
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值