EPPlus添加VBA代码会破坏生成的xlsx文件

问题描述 投票:0回答:1

我正在使用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)
excel vb.net xlsx epplus xlsm
1个回答
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,它应该工作。

© www.soinside.com 2019 - 2024. All rights reserved.