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

如何在C中实现Excel数据导入到数据库?

### C#实现Excel数据导入数据库:该程序通过C#编写,利用相关库读取Excel文件,将数据提取并插入到 数据库中,实现数据的迁移与整合。

在C#中,实现将Excel数据导入数据库是一个常见的需求,以下是详细的步骤和代码示例:

如何在C中实现Excel数据导入到数据库?  第1张

1、准备工作

安装必要的库,如EPPlus用于操作Excel文件,System.Data.SqlClient用于连接SQL Server数据库等,可通过NuGet包管理器进行安装。

准备一个包含数据的Excel文件,假设有一张名为“Sheet1”的工作表,其中有若干列数据。

2、读取Excel文件

使用EPPlus库加载Excel文件并读取工作表中的数据,创建一个方法来读取指定路径的Excel文件中特定工作表的数据:

using OfficeOpenXml;
using System.Data;
public DataTable ReadExcelToDataTable(string filePath, string sheetName)
{
    var package = new ExcelPackage(new FileInfo(filePath));
    var worksheet = package.Workbook.Worksheets[sheetName];
    var dataTable = new DataTable();
    foreach (var firstRowCell in worksheet.Cells[1, 1, 1, worksheet.Dimension.End.Column])
    {
        dataTable.Columns.Add(firstRowCell.Text);
    }
    var startRow = 2;
    foreach (var row in worksheet.Cells[startRow, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column])
    {
        var newRow = dataTable.NewRow();
        foreach (var cell in row)
        {
            newRow[cell.Start.Column 1] = GetValue(cell);
        }
        dataTable.Rows.Add(newRow);
    }
    package.Dispose();
    return dataTable;
}
private object GetValue(ExcelRange cell)
{
    if (cell.Value != null)
    {
        return cell.Value.ToString();
    }
    return DBNull.Value;
}

3、连接数据库并插入数据

建立与数据库的连接,并将从Excel读取的数据插入到数据库表中,可以使用SqlConnection类连接到SQL Server数据库,然后使用SqlCommand执行插入语句,以下是一个示例:

using System.Data.SqlClient;
public void InsertDataIntoDatabase(DataTable dt, string connectionString, string tableName)
{
    using (var conn = new SqlConnection(connectionString))
    {
        conn.Open();
        using (var cmd = new SqlCommand())
        {
            cmd.Connection = conn;
            cmd.CommandText = "INSERT INTO " + tableName + " (Column1, Column2, Column3) VALUES (@Column1, @Column2, @Column3)";
            cmd.Parameters.AddWithValue("@Column1", dt.Rows[0]["Column1"].ToString());
            cmd.Parameters.AddWithValue("@Column2", dt.Rows[0]["Column2"].ToString());
            cmd.Parameters.AddWithValue("@Column3", dt.Rows[0]["Column3"].ToString());
            // 根据实际列数添加更多参数
            int rowsAffected = cmd.ExecuteNonQuery();
        }
    }
}

4、调用方法实现导入功能

在主程序或其他合适的位置调用上述方法,实现从Excel导入数据到数据库的功能。

class Program
{
    static void Main(string[] args)
    {
        string excelFilePath = "path\to\your\excel\file.xlsx";
        string sheetName = "Sheet1";
        string connectionString = "your_database_connection_string";
        string tableName = "YourDatabaseTableName";
        DataTable dt = ReadExcelToDataTable(excelFilePath, sheetName);
        InsertDataIntoDatabase(dt, connectionString, tableName);
    }
}

是一个简单的示例,实际应用中可能需要根据具体的需求进行调整,如处理不同的数据类型、错误处理等,为了提高性能和安全性,可以考虑使用批量插入等方式。

0