首页 > 解决方案 > C# ExcelDataReader 错误 - XLSB 格式的“文件签名无效”

问题描述

当我尝试使用以下代码读取 xlsb 文件时收到“无效文件签名”错误。

如果我使用 CreateReader,则会收到“检测到 ZIP 文件,但不是有效的 OpenXml 文件”错误。我还尝试了下面给出的其他选项,但对我没有任何作用。

有人可以帮我阅读 xlsb 文件吗?

Stream stream = new MemoryStream(srcContent);

public static DataSet GetXLSBData(Stream stream)
{
    DataSet dataSet;

    using (var reader = ExcelReaderFactory.CreateBinaryReader(stream))
    {

        dataSet = reader.AsDataSet();
    }

    foreach (DataTable table in dataSet.Tables)
    {
        table.TableName = table.TableName.Trim();
    }

    return dataSet;
}

尝试了其他选项:

var reader = ExcelReaderFactory.CreateOpenXmlReader(stream)
var reader = ExcelReaderFactory.CreateCsvReader(stream)
var reader = ExcelReaderFactory.CreateReader(stream)

标签: c#.netexcelasp.net-web-apiexceldatareader

解决方案


我的提议

c#代码:

 using (XlsxOrXlsbReadOrEdit excelFile = new XlsxOrXlsbReadOrEdit())
{
   excelFile.Open("file.xlsx");
   excelFile.ActualSheetName = "sheet1";
   object[] row = null;
   while (excelFile.Read())
   {
       if (row == null)
       {
           row = new object[excelFile.FieldCount];
       }
       excelFile.GetValues(row);
   }
}

disclimer - 我是 SpreadSheetTasks Links的创建者


推荐阅读