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

c#中如何读取excel数据库数据库数据

在C#中读取Excel数据,可以使用第三方库如EPPlus或NPOI。例如使用EPPlus,首先安装EPPlus包,然后通过 ExcelPackage类加载Excel文件,再通过工作表对象访问单元格数据。

在C#中读取Excel文件数据,通常有几种方法可以选择,以下是一个详细的指南,包括使用不同的库和方法来读取Excel文件中的数据。

方法一:使用Microsoft.Office.Interop.Excel

步骤:

1、安装和引用:确保你的项目已经安装了Microsoft.Office.Interop.Excel库,并正确引用了该库。

2、打开Excel文件:使用Application类打开Excel文件。

3、访问工作表:通过Worksheets集合访问具体的工作表。

4、读取数据:遍历单元格或使用Range对象读取数据。

5、关闭文件:操作完成后,关闭Excel文件并释放资源。

示例代码:

using System;
using Excel = Microsoft.Office.Interop.Excel;
namespace ReadExcelData
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建Excel应用实例
            Excel.Application excelApp = new Excel.Application();
            // 打开Excel文件
            Excel.Workbook workbook = excelApp.Workbooks.Open("path_to_your_file.xlsx");
            // 获取第一个工作表
            Excel.Worksheet worksheet = workbook.Sheets[1];
            // 假设数据从A1开始
            Excel.Range range = worksheet.UsedRange;
            // 遍历范围
            for (int i = 1; i <= range.Rows.Count; i++)
            {
                for (int j = 1; j <= range.Columns.Count; j++)
                {
                    Console.Write(range.Cells[i, j].Value2 + "t");
                }
                Console.WriteLine();
            }
            // 关闭工作簿和Excel应用
            workbook.Close(false);
            excelApp.Quit();
        }
    }
}

方法二:使用EPPlus库

步骤:

1、安装EPPlus:通过NuGet包管理器安装EPPlus库。

2、加载Excel文件:使用ExcelPackage类加载Excel文件。

3、访问工作表:通过Worksheets属性访问具体的工作表。

4、读取数据:遍历单元格或使用Cells属性读取数据。

5、关闭文件:操作完成后,关闭Excel文件并释放资源。

示例代码:

using System;
using OfficeOpenXml;
namespace ReadExcelData
{
    class Program
    {
        static void Main(string[] args)
        {
            // 加载Excel文件
            using (var package = new ExcelPackage(new FileInfo("path_to_your_file.xlsx")))
            {
                // 获取第一个工作表
                var worksheet = package.Workbook.Worksheets[0];
                // 假设数据从A1开始
                for (int i = 1; i <= worksheet.Dimension.End.Row; i++)
                {
                    for (int j = 1; j <= worksheet.Dimension.End.Column; j++)
                    {
                        var cellValue = worksheet.Cells[i, j].Text;
                        Console.Write(cellValue + "t");
                    }
                    Console.WriteLine();
                }
            }
        }
    }
}

方法三:使用NPOI库

步骤:

1、安装NPOI:通过NuGet包管理器安装NPOI库。

2、加载Excel文件:使用XSSFWorkbook类加载Excel文件(适用于.xlsx格式)。

3、访问工作表:通过Sheets属性访问具体的工作表。

4、读取数据:遍历行和单元格读取数据。

5、关闭文件:操作完成后,关闭Excel文件并释放资源。

示例代码:

using System;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System.IO;
namespace ReadExcelData
{
    class Program
    {
        static void Main(string[] args)
        {
            // 加载Excel文件
            using (var fileStream = new FileStream("path_to_your_file.xlsx", FileMode.Open, FileAccess.Read))
            {
                IWorkbook workbook = new XSSFWorkbook(fileStream);
                ISheet sheet = workbook.GetSheetAt(0);
                for (int i = 0; i <= sheet.LastRowNum; i++)
                {
                    IRow row = sheet.GetRow(i);
                    if (row != null)
                    {
                        for (int j = 0; j < row.LastCellNum; j++)
                        {
                            ICell cell = row.GetCell(j);
                            Console.Write(cell.ToString() + "t");
                        }
                        Console.WriteLine();
                    }
                }
            }
        }
    }
}

FAQs

Q1: 如果Excel文件包含多个工作表,如何指定要读取的工作表?

A1: 对于所有上述方法,你可以通过索引或名称来指定要读取的工作表,在EPPlus中,你可以使用package.Workbook.Worksheets["SheetName"]来访问特定名称的工作表;在NPOI中,可以使用workbook.GetSheet("SheetName")

Q2: 如何处理读取过程中可能出现的异常?

A2: 在处理Excel文件时,建议使用try-catch块来捕获和处理可能的异常,如文件未找到、格式错误等,这样可以提高程序的健壮性,并提供有用的错误信息以供调试。

0