作者:街对面的怪蜀黍 | 来源:互联网 | 2023-09-06 10:26
问题描述xlrd读取xlsx文件会有五种格式ctype:0empty,1string,2number,3date,4boolean,5error时间输入3date
问题描述
xlrd读取xlsx文件会有五种格式
ctype: 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
时间输入3 date,所以不能直接输出或赋值,否则就会打印一个数字。
解决方法
先读取文件
// 下面是读取
file = xlrd.open_workbook(file_path)
data = file.sheet_by_index(0)// 下面是输出
save_book = xlwt.Workbook(encoding='utf-8')
worksheet = save_book.add_sheet(sheetname=file.sheet_names()[0])
解决方法有两个,首先要判断一下数据格式:
if (data.cell_type(row,col)==3): // =3就是date格式的
方法一:转换成字符串
time_ = xlrd.xldate_tuple(data.cell_value(row,col), file.datemode)
time_ = datetime(*time_).strftime('%Y-%m-%d %H:%M:%S')
worksheet.write(new_row, col, time_) // 写入到输出文件中
方法二:继续用date格式
// 先定义日期格式
dateFormat = xlwt.XFStyle()
dateFormat.num_format_str = 'yyyy-mm-dd hh:mm:ss'
// 输出
time_ = xlrd.xldate_as_datetime(data.cell_value(row,col), file.datemode)
worksheet.write(new_row, col, time_, dateFormat)