c# - OpenXml.Spreadsheet 类在简单的 excel 文件上抛出 FileFormatException 错误

标签 c# openxml

我需要读取 50MB .XLS excel 但我收到此错误:

System.IO.FileFormatException {"File contains corrupted data."}

我选择 OpenXMLReader 类进行阅读,因为它似乎适合这种情况。 但是它在第一行代码就崩溃了。

SpreadsheetDocument.Open(filename, false)

Excel文件可以在这里下载: http://www.filedropper.com/saxfile其简单的 97-2003 excel 测试文件有 10 行

    static void Main(string[] args)
        {
            ReadExcelFileSAX(@"C:\Users\User\Desktop\SAXFile.xls");
        }

    static void ReadExcelFileSAX(string filename)
    {
        using (SpreadsheetDocument myDoc = SpreadsheetDocument.Open(filename, false))
        {
            WorkbookPart workbookPart = myDoc.WorkbookPart;
            WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();

            OpenXmlReader reader = OpenXmlReader.Create(worksheetPart);
            string text;
            while (reader.Read())
            {
                if (reader.ElementType == typeof(CellValue))
                {
                    text = reader.GetText();
                    Console.WriteLine(text);
                }
            }
        }
    }

我错过了什么?

最佳答案

您尝试打开的文件是 OpenXML 之前的二进制格式 Excel 文件。

我确信读者在检测到它不是有效的 ZIP 存档时会立即引发错误。

关于c# - OpenXml.Spreadsheet 类在简单的 excel 文件上抛出 FileFormatException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26819312/

相关文章:

c# - 如何用设计模式改进多态性

c# - 有没有 Eclipse C# Highlight, Code Completion 插件

c# - 使用 Open XML 创建 word 文档

excel - 禁用有关在 OfficeOpenXml 中包含数值的 Excel 文本单元格的警告

java - 在Java中匹配Excel的 float

c# - 如何防止 ASP.NET Identity 外部登录在 url 末尾添加#?

c# - Umbraco 工作提要 rss

c# - 如何比较两个数组列表?

c# - 如何使用 C# 和 Open XML SDK 按特定文本拆分 Word 文档?

xml - 从 OpenXml Excel 文件中读取日期