c# - FlexCel 创建了损坏的 xlsx 文件

标签 c# excel xlsx xls

我使用 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/

相关文章:

C# 设置问题。

c# - 我需要把.xlsx下载

sql - 将数据从 Oracle SQL Developer 导出到 Excel .xlsx

c# - java lucene中lucene.net索引目录的使用

c# - 如何等待异步方法在 C# 中完成?

c# - 将 DataTable 转换为只有值的 JSON

Excel创建多重条件排名

excel - 使用动态数组存储和粘贴值

python - 如何将 pandas 中的格式应用到导出的 Excel 文件(特别是尝试填充空白单元格)

c++ - 在 C++ 中输出到 xlsx 文件