美文网首页
C# 使用ExcelDataReader读取Excel文件内容

C# 使用ExcelDataReader读取Excel文件内容

作者: Ritchie_Li | 来源:发表于2022-08-18 22:10 被阅读0次

存在很多优秀的操作Excel文件的库,本次使用ExcelDataReader 库读取Excel中的内容。感觉这个库很容易上手,操作方便,值得介绍一下。

1. 安装库ExcelDataReader

安装信息如下:

正在尝试收集与目标为“.NETFramework,Version=v4.8”的项目“01_ReadExcelDemo”有关的包“ExcelDataReader.3.6.0”的依赖项信息

收集依赖项信息花费时间1.22 sec

正在尝试解析程序包“ExcelDataReader.3.6.0”的依赖项,DependencyBehavior 为“Lowest”

解析依赖项信息花费时间0 ms

正在解析操作以安装程序包“ExcelDataReader.3.6.0”

已解析操作以安装程序包“ExcelDataReader.3.6.0”

正在将包“ExcelDataReader.3.6.0”添加到文件夹“D:\CodeTest\ReadExcelByExcelDataReader\packages”

已将包“ExcelDataReader.3.6.0”添加到文件夹“D:\CodeTest\ReadExcelByExcelDataReader\packages”

已将包“ExcelDataReader.3.6.0”添加到“packages.config”

已将“ExcelDataReader 3.6.0”成功安装到01_ReadExcelDemo

执行 nuget 操作花费时间23.82 sec

已用时间: 00:00:25.5807833

2. 读取Excel文件内容

将Excel 文件路径出入下参数filePath。

using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))

            {

                //  Auto-detect format, supports:

                //  - Binary Excel files (2.0-2003 format; *.xls)

                //  - OpenXml Excel files (2007 format; *.xlsx, *.xlsb)

                using (var reader = ExcelReaderFactory.CreateReader(stream))

                {

                    // Choose one of either 1 or 2:

                    // 1. Use the reader methods

                    do

                    {

                        Console.WriteLine("=========================");

                        Console.WriteLine($"表名称: {reader.Name}");

                        Console.WriteLine("=========================");

                        while (reader.Read()) // 读取Excel文件所有表中得内容

                        {

                            // reader.GetDouble(0);

                            //reader.GetString(1);

                            //var d1 = reader.GetValue(0); //返回Object

                            //var d2 = reader.GetValue(1);

                            //Console.WriteLine($"{d1}  {d2}  ");

                            for (int i = 0; i < reader.FieldCount; i++)

                            {

                                Console.Write($"{reader.GetValue(i)}\t");

                            }

                            Console.WriteLine();

                        }

                    } while (reader.NextResult());

读取该Excel文件所有表的内容。

3. 读取Excel文件表的行列,依据行列遍历

using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))

            {

                using (var reader = ExcelReaderFactory.CreateReader(stream))

                {

                    Console.WriteLine("==========================================");

                    Console.WriteLine($"工作表的数量:{reader.ResultsCount} ");

                    Console.WriteLine("==========================================");

                    int nums = reader.ResultsCount;

                    for (int i = 0; i < nums; i++)

                    {

                        Console.WriteLine($"当前工作表名:{reader.Name}");

                        Console.WriteLine($"当前工作表列数:{reader.FieldCount}");

                        Console.WriteLine($"当前工作表行数:{reader.RowCount}");

                        int rows = reader.RowCount;

                        int cols = reader.FieldCount;

                        string taName = reader.Name;

                        for (int index = 0; index < rows; index++)

                        {

                            reader.Read();//每一行读取一次

                            for (int j = 0; j < cols; j++)

                            {

                                //var ty = reader.GetFieldType(j);

                                //Console.WriteLine(ty.Name);

                                var v = reader.GetValue(j);

                                Console.Write($"{v}  ");

                            }

                            Console.WriteLine();

                        }

                        reader.NextResult(); //下一张表

                        Console.WriteLine($"===========Above {taName} Data===============");

                    }

                }

获取总表数,获取每张表的行,列数据,再依据行列遍历。

相关文章

网友评论

      本文标题:C# 使用ExcelDataReader读取Excel文件内容

      本文链接:https://www.haomeiwen.com/subject/tikygrtx.html