版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DM_learner/article/details/79186541
(1)方法一:
#!/usr/bin/env python3
from datetime import date
from xlrd import open_workbook,xldate_as_tuple
from xlwt import Workbook
output_workbook=Workbook()
output_worksheet=output_workbook.add_sheet('january_2017_repair')
with open_workbook('E:\\研究生学习\\python数据\\实验数据\\Excel文件实验数据\\sales_2017.xlsx') as workbook:
worksheet=workbook.sheet_by_name('january_2013')
for row_index in range(worksheet.nrows):
for col_index in range(worksheet.ncols):
#判断单元格里的值是否是日期
if worksheet.cell_type(row_index,col_index)==3:
#先将单元格里的表示日期数值转换成元组
date_cell=xldate_as_tuple(worksheet.cell_value(row_index,col_index),workbook.datemode)
#使用元组的索引来引用元组的前三个元素并将它们作为参数传递给date函数来转换成date对象,用strftime()函数来将date对象转换成特定格式的字符串
date_cell=date(*date_cell[:3]).strftime('%Y/%m/%d')
#将格式化的日期填充到原来的表示日期的数值的位置
output_worksheet.write(row_index,col_index,date_cell)
else:
#将sheet中非表示日期的值赋给non_date_celld对象
non_date_cell=worksheet.cell_value(row_index,col_index)
#将sheet中非表示日期的值位置填充到相应位置
output_worksheet.write(row_index,col_index,non_date_cell)
output_workbook.save('E:\\研究生学习\\python数据\\实验数据\\Excel文件实验数据\\sale_january_format_2017.xlsx')
这个方法比较直接,要考虑的问题是日期的格式化处理
(2)方法二:
#!/usr/bin/env python3
import pandas as pd
#读取工作簿和工作簿中的工作表
data_frame=pd.read_excel('E:\\研究生学习\\python数据\\实验数据\\Excel文件实验数据\\sales_2017.xlsx',sheet_name='january_2013')
#新建一个工作簿
writer=pd.ExcelWriter('E:\\研究生学习\\python数据\\实验数据\\Excel文件实验数据\\sale_january_2017_in_pandas.xlsx')
#使用to_excel将之前读取的工作簿中工作表的数据写入到新建的工作簿的工作表中
data_frame.to_excel(writer,sheet_name='jan_2017_output_sheet',index=False)
#保存并且关闭工作簿
writer.save()
(3)方法三:
#!/usr/bin/env python3
import pandas as pd
#读取工作簿和工作簿中的工作表
writer_1=pd.ExcelFile('E:\\研究生学习\\python数据\\实验数据\\Excel文件实验数据\\sales_2017.xlsx')
data_frame= writer_1.parse('january_2013')
#新建一个工作簿
writer=pd.ExcelWriter('E:\\研究生学习\\python数据\\实验数据\\Excel文件实验数据\\sale_january_2017_in_pandas.xlsx')
#使用to_excel将之前读取的工作簿中工作表的数据写入到新建的工作簿的工作表中
data_frame.to_excel(writer,sheet_name='jan_2017_output_sheet',index=False)
#保存并且关闭工作簿
writer.save()