ExcelDataReader开源项目完全使用指南

ExcelDataReader开源项目完全使用指南

【免费下载链接】ExcelDataReader Lightweight and fast library written in C# for reading Microsoft Excel files 【免费下载链接】ExcelDataReader 项目地址: https://gitcode.com/gh_mirrors/ex/ExcelDataReader

ExcelDataReader是一款轻量级且高效的C#库,专门用于读取Microsoft Excel文件。本指南将为您提供从项目结构到实际应用的完整学习路径。

项目架构深度解析

核心源码模块详解

ExcelDataReader采用模块化设计,主要包含以下核心组件:

核心读取引擎:src/ExcelDataReader/ - 提供底层Excel文件读取能力,支持多种Excel格式 数据扩展模块:src/ExcelDataReader.DataSet/ - 支持将数据填充到DataSet中

质量保障体系

项目拥有完善的测试套件,位于src/ExcelDataReader.Tests/目录,包含:

  • 二进制Excel文件测试
  • OpenXml格式测试
  • CSV文件测试
  • 严格模式验证测试

丰富的测试数据资源

项目提供了超过400个测试文件,覆盖各种Excel版本和复杂场景:

  • 传统二进制格式(.xls) - BIFF2到BIFF8
  • OpenXml格式(.xlsx, .xlsb) - Excel 2007及更新版本
  • CSV文件格式
  • 加密和受保护文件

快速启动与配置

依赖管理

通过NuGet包管理器安装ExcelDataReader:

  • 基础包:ExcelDataReader - 提供核心读取接口
  • 扩展包:ExcelDataReader.DataSet - 支持AsDataSet()方法

核心配置选项

读取器配置

var reader = ExcelReaderFactory.CreateReader(stream, new ExcelReaderConfiguration()
{
    FallbackEncoding = Encoding.GetEncoding(1252),
    Password = "password",
    AutodetectSeparators = new char[] { ',', ';', '\t', '|', '#' },
    TrimWhiteSpace = true,
    LeaveOpen = false
});

数据集配置

var result = reader.AsDataSet(new ExcelDataSetConfiguration()
{
    UseColumnDataType = true,
    ConfigureDataTable = (_) => new ExcelDataTableConfiguration()
    {
        EmptyColumnNamePrefix = "Column",
        UseHeaderRow = true
    }
});

核心功能使用方法

基本读取模式

using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
{
    using (var reader = ExcelReaderFactory.CreateReader(stream))
    {
        // 方法1:使用读取器方法逐行处理
        do
        {
            while (reader.Read())
            {
                // 读取单元格数据
                var value = reader.GetValue(0);
            }
        } while (reader.NextResult());

        // 方法2:使用AsDataSet扩展方法
        var dataSet = reader.AsDataSet();
    }
}

CSV文件读取

使用专门的CSV读取器:

var reader = ExcelReaderFactory.CreateCsvReader(stream);

核心接口与功能

IExcelDataReader主要方法

  • Read() - 读取当前工作表的下一行
  • NextResult() - 移动到下一个工作表
  • ResultsCount - 返回工作簿中的工作表数量
  • Name - 返回当前工作表的名称
  • FieldCount - 返回当前工作表的列数
  • RowCount - 返回当前工作表的行数

数据类型获取方法

  • GetFieldType() - 获取值的类型
  • GetValue() - 以object形式返回值
  • 类型化方法:GetDouble(), GetInt32(), GetBoolean(), GetDateTime(), GetString()

高级功能特性

格式信息获取

string GetFormattedValue(IExcelDataReader reader, int columnIndex, CultureInfo culture)
{
    var value = reader.GetValue(columnIndex);
    var formatString = reader.GetNumberFormatString(columnIndex);
    if (formatString != null)
    {
        // 使用ExcelNumberFormat库进行格式化
        return formatString;
    }
    return Convert.ToString(value, culture);
}

样式信息

通过GetCellStyle()方法获取单元格样式信息,包括:

  • 缩进设置
  • 水平对齐方式
  • 隐藏状态
  • 锁定状态

重要注意事项

从ExcelDataReader 2.x升级

升级到3.x版本时需要注意以下变更:

  1. 命名空间从Excel改为ExcelDataReader
  2. 需要引用ExcelDataReader.DataSet包来使用AsDataSet()
  3. 移除了IsFirstRowAsColumnNames属性

.NET Core兼容性

在.NET Core和.NET 5.0+中,需要添加以下配置:

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);

支持的Excel文件格式

文件类型容器格式文件格式Excel版本
.xlsxZIP, CFB+ZIPOpenXml2007及更新版本
.xlsbZIP, CFBOpenXml2007及更新版本
.xlsCFBBIFF897, 2000, XP, 2003
.xls-BIFF55.0, 95
.xls-BIFF44.0
.xls-BIFF33.0
.xls-BIFF22.0, 2.2
.csv-CSV所有版本

性能优化建议

  1. 内存管理:及时释放流和读取器资源
  2. 大数据处理:使用FilterRow回调实现进度指示
  3. 配置优化:根据实际需求调整AnalyzeInitialCsvRows参数

通过本指南,您将能够充分利用ExcelDataReader的强大功能,高效处理各种Excel文件读取需求。

【免费下载链接】ExcelDataReader Lightweight and fast library written in C# for reading Microsoft Excel files 【免费下载链接】ExcelDataReader 项目地址: https://gitcode.com/gh_mirrors/ex/ExcelDataReader

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值