开发工具
python版本:Python 3.6.1
python开发工具:JetBrains PyCharm 2018.3.6 x64
第三方库xlrd安装→pip install xlrd -i http://mirrors.aliyun.com/pypi/simple/
excel测试数据.xls→文件下载地址
https://url71.ctfile.com/f/13238771-530113270-f156f0
(访问密码:8835)
问题代码
import xlrd
from jieba import xrange
from pprint import pprint
filename = 'excel测试数据.xls'
wb = xlrd.open_workbook(filename=filename)
ws = wb.sheet_by_name('Sheet1')
dataset = []
for r in xrange(ws.nrows):
col = []
for c in range(ws.ncols):
col.append(ws.cell(r, c).value)
dataset.append(col)
pprint(dataset)
问题分析
在文件日期格式为yyyy/MM/dd HH:mm:ss,通过python读取文件中日期信息变为了浮点类型的数据,在读取是需要做相应的处理
解决代码
from datetime import datetime
import xlrd
from jieba import xrange
from pprint import pprint
from xlrd import xldate_as_tuple
filename = 'excel测试数据.xls'
wb = xlrd.open_workbook(filename=filename)
ws = wb.sheet_by_name('Sheet1')
dataset = []
for r in xrange(ws.nrows):
col = []
for c in range(ws.ncols):
if ws.cell(r, c).ctype == xlrd.XL_CELL_DATE: # 判断单元格类型是否为日期格式,如果是进行如下操作
data_value = xldate_as_tuple(ws.cell(r, c).value, datemode=0)
col.append(datetime(*data_value).strftime('%Y/%m/%d %H:%M:%S'))
else:
col.append(ws.cell(r, c).value)
dataset.append(col)
pprint(dataset)
运行结果
总结
运用xlrd读取excel文件时,需要注意日期格式的读取;直接读取读出来内容为浮点数,这里需要对单元格类型作日期类型判断,如果是单独处理一下日期,将日期转为我们需要的形式