一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

C#使用NPOI实现Excel文件内容导入数据库功能的流程步骤

时间:2026-08-08 07:32:51 编辑:袖梨 来源:一聚教程网

C#使用NPOI实现Excel文件内容导入数据库功能的流程步骤的重点在于把前置条件、操作顺序和容易误判的地方分清楚。

引言

使用NPOI库在C#中导入Excel文件到数据库是一个常见的需求,特别是在处理大量数据时。NPOI是一个开源的.NET库,用于处理Excel文件(.xls和.xlsx格式)。下面是一个基本的步骤和代码示例,展示如何使用NPOI读取Excel文件并将其数据导入到数据库中。

C#使用NPOI实现Excel文件内容导入数据库功能的流程步骤

步骤 1: 安装NPOI库

首先,你需要在你的项目中安装NPOI库。你可以通过NuGet包管理器来安装它。在Visual Studio中,你可以通过以下命令安装NPOI:

Install-Package NPOI

步骤 2: 读取Excel文件

使用NPOI读取Excel文件,你可以根据文件类型(.xls或.xlsx)选择合适的类来打开文件。

using NPOI.SS.UserModel;using NPOI.XSSF.UserModel; // 对于.xlsx文件using NPOI.HSSF.UserModel; // 对于.xls文件using System.Data;using System.IO;public DataTable ReadExcelFile(string filePath){    IWorkbook workbook;    using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))    {        if (filePath.EndsWith(".xlsx"))        {            workbook = new XSSFWorkbook(file); // 对于.xlsx文件        }        else if (filePath.EndsWith(".xls"))        {            workbook = new HSSFWorkbook(file); // 对于.xls文件        }        else        {            throw new Exception("Unsupported file format.");        }        ISheet sheet = workbook.GetSheetAt(0); // 获取第一个工作表        DataTable dt = new DataTable();        IRow headerRow = sheet.GetRow(0); // 获取第一行(假设为表头)        for (int cellIndex = 0; cellIndex < headerRow.LastCellNum; cellIndex++) // 遍历表头列数        {            ICell cell = headerRow.GetCell(cellIndex);            dt.Columns.Add(cell.ToString()); // 添加列名到DataTable中        }        for (int rowIndex = 1; rowIndex <= sheet.LastRowNum; rowIndex++) // 遍历行(从第二行开始)        {            IRow row = sheet.GetRow(rowIndex);            if (row == null) continue; // 如果行为空,则跳过            DataRow dataRow = dt.NewRow(); // 创建新行            for (int cellIndex = 0; cellIndex < row.LastCellNum; cellIndex++) // 遍历单元格列数            {                ICell cell = row.GetCell(cellIndex);                if (cell != null) dataRow[cellIndex] = cell.ToString(); // 填充数据到DataTable中            }            dt.Rows.Add(dataRow); // 添加行到DataTable中        }        return dt; // 返回填充好的DataTable    }}

步骤 3: 将数据导入数据库

在读取完Excel文件并得到DataTable后,你可以使用ADO.NET来将数据导入到数据库中。这里是如何将数据导入SQL Server数据库的示例:

using System.Data.SqlClient;public void ImportDataToDatabase(DataTable dt, string connectionString){    using (SqlConnection conn = new SqlConnection(connectionString))    {        conn.Open(); // 打开数据库连接        using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn))        {            bulkCopy.DestinationTableName = "YourTableName"; // 设置目标表名            bulkCopy.WriteToServer(dt); // 将DataTable数据写入数据库表中        }    }}

步骤 4: 调用方法进行导入操作

最后,你可以在主程序中调用这些方法来读取Excel文件并导入到数据库:

string excelFilePath = @"pathtoyourexcelfile.xlsx"; // Excel文件路径string connectionString = "your_connection_string_here"; // 数据库连接字符串DataTable dt = ReadExcelFile(excelFilePath); // 读取Excel文件到DataTable中ImportDataToDatabase(dt, connectionString); // 将数据导入到数据库中

确保你的数据库连接字符串正确,并且目标表已经创建好,具有与Excel文件中列相对应的结构。这样就可以

热门栏目