目前的逻辑:forsheetNameinwb.sheet_names():withopen(full_txt_name,mode='a')astxtFile:sheet=wb.sheet_by_name(sheetName)forrownuminrange(1,sheet.nrows):forcolnuminrange(0,s...
目前的逻辑:
for sheetName in wb.sheet_names():
with open(full_txt_name, mode='a') as txtFile:
sheet = wb.sheet_by_name(sheetName)
for rownum in range(1,sheet.nrows):
for colnum in range(0,sheet.ncols):
v1 = sheet.cell(rownum, colnum).value
if (type(v1) == float):
v1 = str(v1)
v1 = re.sub('\.0*$', "", v1)
txtFile.write(v1)
if colnum
txtFile.write('|')
else:
txtFile.write('\n')
txtFile.close()
效果:
Excel表中某字段展现为2016-6-14 17:35:00
转为txt后为42535.7326388889
需要,转为txt后为2016-6-14 17:35:00或20160614
虽然通过增加下列代码
from xlrd import xldate_as_tuple
from datetime import datetime
v1 = datetime(*xldate_as_tuple(v1,0))
能将浮点转成需要的日期,但是对于非数值字段,就会报错
invalid literal for int() with base 10:'anycharacter'
并且会误杀金额类float
不知道如何判断Excel格式,请大神指点,谢谢!
展开