Python:用当前date保存Excel文件

我正在尝试使用Python 3.6和Datetime模块将一个新的Excel文件保存在与原始文件名和当前date相同的文件夹中。

该文件被保存,但是当我打开创build的文件说,Excel无法打开文件“AllData 2017_08_04.xlsm”,因为文件格式或文件扩展名无效。

我怎样才能让文件正确保存datestring?

from datetime import datetime os.chdir(r'\\URL\All Data Folder') wb = openpyxl.load_workbook('AllData.xlsm') datestring = datetime.strftime(datetime.now(), ' %Y_%m_%d') wb.save('AllData' + datestring + '.xlsm') 

这应该适合你的问题。 使用pandas代替

 import pandas as pd from datetime import datetime #Use pandas to adress the issue os.chdir(r'\\URL\All Data Folder') wb=pd.read_excel(io=r"YOUR PATH\AllData.xlsm")#Fill in your path datestring = datetime.strftime(datetime.now(), ' %Y_%m_%d') wb.to_excel(excel_writer=r"YOUR PATH\{0}".format('AllData' + datestring + '.xlsm'))#Fill in your path 

如果这不起作用,看看这个问题应该回答你的问题,因为它是关于如何保存与xlsm结尾的Excel文件

正如我在评论中提到的那样,工作簿中可能会embedded一些VBA代码 – 因此.xlsm扩展名。

如果您不需要macros/ VBA代码,请尝试: wb.save('AllData' + datestring + '.xlsx')

另外,如果您检查load_workbook()文档,则有一个keep_vba参数。 尝试:

wb = openpyxl.load_workbook('AllData.xlsm', keep_vba=True)