目前的逻辑: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格式,请大神指点,谢谢!
展开
博客内容讲述了在从Excel转换为TXT文件的过程中遇到的问题,即Excel中的日期字段以浮点数形式出现,转换后不正确。作者尝试使用`xlrd`库来将浮点数转换为日期,但遇到非数值字段转换错误。寻求一种方法既能正确处理日期,又不会影响非数值字段的转换。
840

被折叠的 条评论
为什么被折叠?



