当前位置:首页 > 行业动态 > 正文

c# 读取excel中数据库

在C#中读取Excel文件,可以使用第三方库如EPPlus或NPOI来操作Excel数据。

C# 读取 Excel 中的数据

在C#中,读取Excel文件中的数据可以通过多种方式实现,常用的方法包括使用Microsoft提供的Interop库、第三方库如EPPlus和NPOI等,下面将详细介绍如何使用这些方法来读取Excel文件中的数据。

方法一:使用 Microsoft.Office.Interop.Excel(适用于 .NET Framework)

1、安装和引用

首先需要安装Microsoft Office Interop库,你可以通过NuGet包管理器来安装:

 Install-Package Microsoft.Office.Interop.Excel

在你的项目中添加对Microsoft.Office.Interop.Excel 的引用。

2、代码示例

 using System;
   using System.Runtime.InteropServices;
   using Excel = Microsoft.Office.Interop.Excel;
   class Program
   {
       static void Main()
       {
           string path = @"C:pathtoyourexcel.xlsx";
           Excel.Application excelApp = new Excel.Application();
           if (excelApp == null)
           {
               Console.WriteLine("Excel is not properly installed!!");
               return;
           }
           Excel.Workbook workbook = excelApp.Workbooks.Open(path);
           Excel.Worksheet worksheet = workbook.Worksheets[1]; // 获取第一个工作表
           Excel.Range range = worksheet.UsedRange;
           for (int row = 1; row <= range.Rows.Count; row++)
           {
               for (int col = 1; col <= range.Columns.Count; col++)
               {
                   Console.Write(range.Cells[row, col].Value2 + "t");
               }
               Console.WriteLine();
           }
           workbook.Close(false);
           excelApp.Quit();
           Marshal.ReleaseComObject(workbook);
           Marshal.ReleaseComObject(excelApp);
       }
   }

3、注意事项

这种方法依赖于本地安装了Microsoft Office。

性能可能不如其他专用库。

方法二:使用 EPPlus(适用于 .NET Core/.NET Standard)

c# 读取excel中数据库

1、安装和引用

通过NuGet包管理器安装EPPlus:

 Install-Package EPPlus

2、代码示例

 using System;
   using OfficeOpenXml;
   class Program
   {
       static void Main()
       {
           string path = @"C:pathtoyourexcel.xlsx";
           using (var package = new ExcelPackage(new FileInfo(path)))
           {
               // 获取第一个工作表
               var worksheet = package.Workbook.Worksheets[0];
               var rows = worksheet.Dimension.Rows;
               for (int i = 2; i <= rows; i++) // 跳过标题行
               {
                   var cell = worksheet.Cells[i, 1]; // 假设数据从第一列开始
                   Console.WriteLine(cell.Text);
               }
           }
       }
   }

3、注意事项

EPPlus仅支持.xlsx格式,不支持旧版.xls格式。

适合处理大量数据的场景。

方法三:使用 NPOI(适用于 .NET Core/.NET Standard)

c# 读取excel中数据库

1、安装和引用

通过NuGet包管理器安装NPOI:

 Install-Package NPOI

2、代码示例

 using System;
   using NPOI.SS.UserModel;
   using NPOI.XSSF.UserModel;
   using System.IO;
   class Program
   {
       static void Main()
       {
           string path = @"C:pathtoyourexcel.xlsx";
           IWorkbook workbook = new XSSFWorkbook(File.OpenRead(path));
           ISheet sheet = workbook.GetSheetAt(0); // 获取第一个工作表
           for (int i = 1; i <= sheet.LastRowNum; i++) // 跳过标题行
           {
               IRow row = sheet.GetRow(i);
               ICell cell = row.GetCell(0); // 假设数据从第一列开始
               Console.WriteLine(cell.ToString());
           }
       }
   }

3、注意事项

NPOI同时支持.xls和.xlsx格式。

适合处理大量数据的场景。

相关问答FAQs

Q1: 为什么选择EPPlus而不是Interop?

c# 读取excel中数据库

A1: EPPlus是一个开源库,不依赖Microsoft Office的安装,且更适合跨平台开发(如.NET Core),而Interop则依赖于本地安装的Microsoft Office,并且在某些情况下可能会遇到兼容性问题,EPPlus的性能通常优于Interop,特别是在处理大量数据时。

Q2: NPOI与EPPlus有什么区别?

A2: NPOI和EPPlus都是用于操作Excel文件的库,但它们有一些关键区别:

文件格式支持:NPOI支持HSSF(.xls)和XSSF(.xlsx),而EPPlus只支持XSSF(.xlsx)。

性能:NPOI通常在处理大文件时表现更好,因为它是专门为高性能设计的,EPPlus虽然也很快,但在极端情况下可能不如NPOI。

功能:两者都提供了丰富的API来操作Excel文件,但具体功能和支持程度可能有所不同,开发者可以根据项目需求选择合适的库。