遇到问题
excel文件中,字段为日期格式:
使用pandas处理转换成txt文件,发现变成了数字:
也就是变成了常规:
代码:
import csv
import xlrd
# 定义Excel文件路径
excel_file = '花生好车还款计划_48期_无本息月供4495_还款日20231110-新.xls'
# 打开Excel文件
workbook = xlrd.open_workbook(excel_file)
sheet = workbook.sheet_by_index(0) # 通过索引获取第一个工作表
# 将表头和内容写入文本文件
text_file = 'repayPlan.txt'
with open(text_file, 'w', newline='') as file:
writer = csv.writer(file)
# 写入表头
writer.writerow(sheet.row_values(0))
# 写入内容
for row in range(1, sheet.nrows): # 从第二行开始遍历,因为第一行是表头
writer.writerow(sheet.row_values(row))
print("转换完成!")
解决方法
bito提问
以下代码:
import csv
import xlrd
# 定义Excel文件路径
excel_file = '花生好车还款计划_48期_无本息月供4495_还款日20231110-新.xls'
# 打开Excel文件
workbook = xlrd.open_workbook(excel_file)
sheet = workbook.sheet_by_index(0) # 通过索引获取第一个工作表
# 将表头和内容写入文本文件
text_file = 'repayPlan.txt'
with open(text_file, 'w', newline='') as file:
writer = csv.writer(file)
# 写入表头
writer.writerow(sheet.row_values(0))
# 写入内容
for row in range(1, sheet.nrows): # 从第二行开始遍历,因为第一行是表头
writer.writerow(sheet.row_values(row))
# excel日期格式需要按字符串处理
print("转换完成!")
在writer.writerow(sheet.row_values(row))写入时,判断excel内容是不是日期格式,日期格式要将其当成字符串写入,请你优化代码
bito回答
import csv
import xlrd
import datetime
# 定义Excel文件路径
excel_file = '花生好车还款计划_48期_无本息月供4495_还款日20231110-新.xls'
# 打开Excel文件
workbook = xlrd.open_workbook(excel_file)
sheet = workbook.sheet_by_index(0) # 通过索引获取第一个工作表
# 将表头和内容写入文本文件
text_file = 'repayPlan.txt'
with open(text_file, 'w', newline='') as file:
writer = csv.writer(file)
# 写入表头
writer.writerow(sheet.row_values(0))
# 写入内容
for row in range(1, sheet.nrows): # 从第二行开始遍历,因为第一行是表头
row_values = []
for col in range(sheet.ncols):
cell = sheet.cell(row, col)
if cell.ctype == xlrd.XL_CELL_DATE:
# 处理日期格式单元格
date_value = xlrd.xldate.xldate_as_datetime(cell.value, workbook.datemode)
date_str = date_value.strftime('%Y-%m-%d') # 格式化日期为字符串
row_values.append(date_str)
else:
row_values.append(cell.value)
writer.writerow(row_values)
print("转换完成!")
结果符合预期: