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

.NET Core7中如何将ByteArray转换为XLS文件并处理?

在.NET Core 7中读取XLS格式文件的解决方案

针对你遇到的XLS文件读取问题,推荐以下两个无需依赖Office组件的纯.NET库方案:

方案一:使用NPOI库

NPOI对旧版BIFF格式的XLS文件支持完善,且完全适配.NET Core环境。

  1. 先安装NuGet包:NPOI(该包已包含处理XLS的HSSF模块)
  2. 读取示例代码:
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;

using (MemoryStream memStream = new MemoryStream(byteArray))
{
    // 初始化XLS工作簿
    IWorkbook workbook = new HSSFWorkbook(memStream);
    // 获取第一个工作表(可根据需求指定索引或名称)
    ISheet targetSheet = workbook.GetSheetAt(0);

    // 遍历行处理数据
    for (int rowIndex = targetSheet.FirstRowNum; rowIndex <= targetSheet.LastRowNum; rowIndex++)
    {
        IRow row = targetSheet.GetRow(rowIndex);
        if (row == null) continue;

        // 遍历单元格提取数据
        for (int cellIndex = row.FirstCellNum; cellIndex < row.LastCellNum; cellIndex++)
        {
            ICell cell = row.GetCell(cellIndex);
            string cellContent = cell?.ToString() ?? string.Empty;
            // 这里添加你的数据处理逻辑
        }
    }
}

方案二:使用ExcelDataReader库

ExcelDataReader同时支持XLS和XLSX格式,API更贴近ADO.NET的DataSet模式,上手成本低。

  1. 安装NuGet包:ExcelDataReader 和 ExcelDataReader.DataSet
  2. 读取示例代码:
using ExcelDataReader;
using System.Data;

// .NET Core环境需注册编码提供器,否则读取XLS会报错
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);

using (MemoryStream memStream = new MemoryStream(byteArray))
{
    // 创建XLS格式的读取器
    using (IExcelDataReader reader = ExcelReaderFactory.CreateBinaryReader(memStream))
    {
        // 配置读取规则(比如是否将第一行作为表头)
        DataSet dataSet = reader.AsDataSet(new ExcelDataSetConfiguration()
        {
            ConfigureDataTable = (_) => new ExcelDataTableConfiguration()
            {
                UseHeaderRow = true
            }
        });

        // 获取第一个工作表的数据表
        DataTable dataTable = dataSet.Tables[0];
        // 遍历行处理数据
        foreach (DataRow row in dataTable.Rows)
        {
            // 根据列名提取数据,示例:row["你的表头名称"]
            string value = row["列名"]?.ToString() ?? string.Empty;
            // 数据处理逻辑
        }
    }
}

额外说明

  • 这两个库都是跨平台的纯.NET实现,不需要在服务器上安装Office,适合.NET Core的部署场景;
  • 如果后续提供方切换为XLSX格式,只需少量修改代码即可兼容(NPOI用XSSFWorkbook,ExcelDataReader用CreateOpenXmlReader)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 05:36:20