如何在C中实现Excel数据导入到数据库?
- 行业动态
- 2025-01-25
- 2742
### C#实现Excel数据导入数据库:该程序通过C#编写,利用相关库读取Excel文件,将数据提取并插入到 数据库中,实现数据的迁移与整合。
在C#中,实现将Excel数据导入数据库是一个常见的需求,以下是详细的步骤和代码示例:
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); } }
是一个简单的示例,实际应用中可能需要根据具体的需求进行调整,如处理不同的数据类型、错误处理等,为了提高性能和安全性,可以考虑使用批量插入等方式。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/399542.html