我正在使用EPPlus从数据表创建一个excel文件并将其保存到文件中,这些都是相当标准的。这没有任何麻烦。但是,如果我创建一个vba项目,并添加任何vba代码,则生成的.xlsx文件会突然损坏。尝试使用2013打开它时,会出现标准错误。
" Excel无法打开文件' xyz.xlsx'因为文件格式或文件 扩展无效。验证文件扩展名是否与。匹配 文件格式。
如果我将扩展名更改为.xls,则文件打开正常,脚本运行正常。我是最新的Epplus测试版(4.5.0.1)。我应该只更改文件扩展名并坚持使用.xls,还是有什么不妥之处?
ExcelPackage.Workbook.CreateVBAProject()
ExcelPackage.Workbook.CodeModule.Code = "'Script is here"
Dim FInfo as new FileInfo("C:\Myfiles\ThisFile.xlsx")
ExcelPackage.SaveAs(FInfo)
答案 0 :(得分:1)
您无法将VBA代码添加到XLSX文件格式。 看看here
<强>的.xlsx:强>
Excel 2007-2013的默认基于XML的文件格式。不能存储 Microsoft Visual Basic for Applications(VBA)宏代码或Microsoft Office Excel 4.0宏表(.xlm)。
另请查看here 看看不同格式之间的差异:
XLSM如果在XLSX文件中包含VBA宏,则会要求您提供 将文件扩展名更改为XLSM。只有那样你才能保存你的 Excel文件中的宏(可能有其他文件类型,例如 XLSB - 但您不能将XLSX用于VBA宏)
将您的文件保存为XLSM,它应该可以正常工作。