我使用 FlexCel
库创建 .xlsx
格式的 Excel 报表。
以 .xls
格式创建文件时 - 一切正常。
当我尝试创建 .xlsx
格式的文件时,文件已创建,但当我通过 Excel 打开它时,出现文件已损坏且无法打开的错误。该文件的大小是 .xls 的一半。
如果有人遇到过类似的问题或者知道解决方案,我将非常感激。
编辑: 我的代码
var templateFilePath = "D:/template.xlsx";
var newReportPath = "D:/report.xlsx";
using (var fr = new FlexCelReport(true))
{
fr.AddTable("SOReport", dataTable);
fr.Run(
templateFilePath,
newReportPath
);
}
最佳答案
我在使用旧版本的 FlexCel 导出 xlsx
格式时遇到了同样的问题。
目前我已在 FlexCel v5.5.1.0 上对其进行了测试,发现了一些有趣的行为:
如果我使用 Excel 2016 或更高版本创建 xlsx 模板 - 然后在尝试打开导出的 xlsx 文件时收到“文件已损坏”错误。
但是如果我使用Excel 2013 或更低版本创建 xlsx 模板 - 那么我可以完美打开它而不会出现错误。
还要提一下,如果您在 Excel 2016 或更高版本中打开由 Excel 2013 或更低版本创建的 xlsx 模板并保存它 - 您将来无法将其恢复到工作状态。 模板将丢失。
太晚了,但我希望这可以帮助你。
附注也许,FlexCel 团队(TMS Software)从 FlexCel v6.7.16.0 版本开始修复了这个问题。我认为是这样,因为文档说了类似的内容:https://www.tmssoftware.com/site/flexcelnet.asp?s=history
改进:改进了与无效 xls 和 xlsx 文件的兼容性
但我无法反驳这一点。
关于c# - FlexCel 创建了损坏的 xlsx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51422601/