You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ExcelDataReader读取HTML格式xls文件报Invalid file signature错误的解决

问题原因
  • ExcelDataReader是专门解析真实Excel格式文件(如二进制.xls或OpenXML格式.xlsx)的工具,它会通过校验文件开头的专属签名判断文件合法性。
  • 你的文件后缀是.xls,但实际内容是HTML表格,没有Excel文件要求的签名(比如.xls的BOF标记),因此库无法识别,抛出Invalid file signature错误。
  • 另外代码中的文件路径"G:\tmp\abc.xls"存在转义问题:C#字符串里\是转义字符,该路径会解析错误,需改为@"G:\tmp\abc.xls"或"G:\\tmp\\abc.xls"。
解决方法

文件本质是HTML表格,不需要用ExcelDataReader处理,直接解析HTML即可,以下是两种可行方案:

方案一:直接解析HTML表格提取数据

推荐使用HtmlAgilityPack库(可通过NuGet安装):

using HtmlAgilityPack;
using System.IO;
using System.Linq;

// 修正路径转义问题
var filePath = @"G:\tmp\abc.xls";
var htmlDoc = new HtmlDocument();
htmlDoc.Load(filePath);

// 获取目标表格节点
var table = htmlDoc.DocumentNode.SelectSingleNode("//table");
if (table == null)
    return;

// 提取表头
var headers = table.SelectNodes(".//th")
                   .Select(th => th.InnerText.Trim())
                   .ToList();

// 提取数据行
var dataRows = table.SelectNodes(".//tr[td]")
                    .Select(tr => tr.SelectNodes(".//td")
                                    .Select(td => td.InnerText.Trim())
                                    .ToList())
                    .ToList();

// 后续可根据业务需求处理headers和dataRows数据

方案二:(可选)将HTML表格转为真实Excel文件后处理

如果必须用ExcelDataReader读取,可先将HTML表格转为合法Excel文件,再解析。以EPPlus库为例(NuGet安装):

using HtmlAgilityPack;
using OfficeOpenXml;
using System.IO;
using System.Linq;

var filePath = @"G:\tmp\abc.xls";
var htmlDoc = new HtmlDocument();
htmlDoc.Load(filePath);
var table = htmlDoc.DocumentNode.SelectSingleNode("//table");

using (var ms = new MemoryStream())
{
    using (var package = new ExcelPackage(ms))
    {
        var worksheet = package.Workbook.Worksheets.Add("ImportedData");
        // 将HTML表格导入Excel工作表
        worksheet.Cells["A1"].LoadFromHtml(table.OuterHtml);
        package.Save();
        
        // 重置流位置,用ExcelDataReader读取
        ms.Position = 0;
        var reader = ExcelReaderFactory.CreateReader(ms);
        // 后续处理Excel数据逻辑
    }
}

内容的提问来源于stack exchange,提问作者Oleg Sh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 01:37:38