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

如何在C中将Excel数据保存到数据库?

摘要:C#中实现Excel保存到数据库,需借助相关库读取Excel数据并建立 数据库连接,通过SQL语句插入或更新数据。

在C#中将Excel数据保存到数据库是一个常见的需求,通常可以通过以下步骤实现:

如何在C中将Excel数据保存到数据库?  第1张

1、读取Excel文件:使用第三方库如EPPlus、NPOI等来读取Excel文件中的数据,这些库提供了丰富的API,可以方便地读取Excel文件的各个工作表、单元格等。

2、连接数据库:使用ADO. NET或其他数据库访问技术连接到目标数据库,对于SQL Server数据库,可以使用SqlConnection类建立连接;对于MySQL数据库,可以使用MySqlConnection类等。

3、插入数据到数据库:将读取到的Excel数据逐行或批量插入到数据库表中,可以使用参数化查询或存储过程来执行插入操作,以提高性能和安全性。

下面以一个简单的示例来说明这个过程:

假设有一个Excel文件“data.xlsx”,其中包含一个工作表“Sheet1”,工作表中有两列数据“ID”和“Name”,现在要将这个工作表中的数据保存到SQL Server数据库中的一个名为“TestTable”的表中。

需要安装EPPlus库来读取Excel文件,可以使用NuGet包管理器安装:

Install-Package EPPlus

编写C#代码如下:

using System;
using System.Data.SqlClient;
using System.IO;
using OfficeOpenXml;
class Program
{
    static void Main()
    {
        string excelFilePath = @"pathtodata.xlsx";
        string connectionString = "your_connection_string_here";
        // 读取Excel文件
        FileInfo fileInfo = new FileInfo(excelFilePath);
        using (ExcelPackage package = new ExcelPackage(fileInfo))
        {
            // 获取工作表
            ExcelWorksheet worksheet = package.Workbook.Worksheets["Sheet1"];
            int rowCount = worksheet.Dimension.Rows;
            // 连接到数据库
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                conn.Open();
                // 遍历Excel行并插入数据到数据库
                for (int row = 2; row <= rowCount; row++) // 假设第一行为标题行
                {
                    int id = int.Parse(worksheet.Cells[row, 1].Text);
                    string name = worksheet.Cells[row, 2].Text;
                    string sql = "INSERT INTO TestTable (ID, Name) VALUES (@ID, @Name)";
                    using (SqlCommand cmd = new SqlCommand(sql, conn))
                    {
                        cmd.Parameters.AddWithValue("@ID", id);
                        cmd.Parameters.AddWithValue("@Name", name);
                        cmd.ExecuteNonQuery();
                    }
                }
            }
        }
    }
}

在这个示例中,首先通过EPPlus库读取Excel文件中的数据,然后使用ADO. NET连接到SQL Server数据库,并通过循环遍历Excel的每一行数据,将其插入到数据库表中。

需要注意的是,以上代码仅为示例,实际应用中可能需要根据具体情况进行修改和完善,例如处理Excel文件中的不同数据类型、错误处理、事务管理等,如果Excel文件较大,可能需要考虑性能优化,如批量插入数据等。

0