c#读取Excel后再存入MySQL中

在 C# 中读取 Excel 文件并将数据存储到 MySQL 数据库中涉及几个步骤:读取 Excel 数据、处理数据、连接 MySQL 数据库,以及将数据插入数据库。以下是详细的步骤和代码示例:

1. 准备工作

1.1 安装必要的库

  1. 读取 Excel 文件:使用 EPPlusNPOI 库。

    • EPPlus:用于处理 Excel 文件的强大库,支持读取和写入 Excel 文件。
    • NPOI:另一个流行的库,支持多种 Excel 文件格式。
  2. 连接 MySQL:使用 MySql.Data 库。

    • 安装 MySql.Data NuGet 包,用于与 MySQL 数据库进行交互。

1.2 安装 NuGet 包

可以通过 NuGet 包管理器或命令行安装这些库:

bash
dotnet add package EPPlus dotnet add package MySql.Data

2. 读取 Excel 文件

以下示例使用 EPPlus 库读取 Excel 文件:

csharp
using OfficeOpenXml; using System; using System.Data; using System.IO; public class ExcelReader { public static DataTable ReadExcel(string filePath) { DataTable dt = new DataTable(); using (var package = new ExcelPackage(new FileInfo(filePath))) { var worksheet = package.Workbook.Worksheets[0]; // 读取第一个工作表 var startRow = worksheet.Dimension.Start.Row; var endRow = worksheet.Dimension.End.Row; var startCol = worksheet.Dimension.Start.Column; var endCol = worksheet.Dimension.End.Column; // 添加列 for (int col = startCol; col <= endCol; col++) { dt.Columns.Add(worksheet.Cells[startRow, col].Text); } // 添加行 for (int row = startRow + 1; row <= endRow; row++) { DataRow dr = dt.NewRow(); for (int col = startCol; col <= endCol; col++) { dr[col - startCol] = worksheet.Cells[row, col].Text; } dt.Rows.Add(dr); } } return dt; } }

3. 将数据存入 MySQL

使用 MySql.Data 库将数据插入 MySQL 数据库。以下示例演示如何连接到 MySQL 并插入数据:

csharp
using MySql.Data.MySqlClient; using System; using System.Data; public class MySQLInserter { private static string connectionString = "Server=localhost;Database=yourDatabase;User ID=yourUsername;Password=yourPassword;"; public static void InsertDataIntoMySQL(DataTable dataTable) { using (var connection = new MySqlConnection(connectionString)) { connection.Open(); foreach (DataRow row in dataTable.Rows) { var commandText = "INSERT INTO yourTableName (Column1, Column2, ...) VALUES (@Value1, @Value2, ...)"; using (var command = new MySqlCommand(commandText, connection)) { command.Parameters.AddWithValue("@Value1", row["Column1"]); command.Parameters.AddWithValue("@Value2", row["Column2"]); // 添加其他参数 command.ExecuteNonQuery(); } } } } }

4. 整合代码

将读取 Excel 和插入 MySQL 的代码整合到一个程序中:

csharp
using System; using System.Data; class Program { static void Main() { string excelFilePath = "path/to/your/excel/file.xlsx"; DataTable dataTable = ExcelReader.ReadExcel(excelFilePath); if (dataTable.Rows.Count > 0) { MySQLInserter.InsertDataIntoMySQL(dataTable); Console.WriteLine("Data successfully inserted into MySQL."); } else { Console.WriteLine("No data found in the Excel file."); } } }

5. 注意事项

  • 数据验证:确保 Excel 数据格式与 MySQL 数据库表的结构匹配。
  • 异常处理:在实际应用中,添加适当的异常处理来处理可能的错误(如文件读取错误、数据库连接错误等)。
  • 性能优化:对于大量数据插入,考虑使用批量插入操作以提高性能。

总结

  1. 安装库:使用 EPPlus 读取 Excel 文件,使用 MySql.Data 与 MySQL 数据库交互。
  2. 读取 Excel 文件:解析 Excel 文件并将数据存储到 DataTable
  3. 插入 MySQL:连接 MySQL 数据库并将数据从 DataTable 插入到目标表中。
  4. 整合代码:将读取和插入逻辑整合到一个程序中,进行数据迁移。

关键字

C#, Excel, MySQL, EPPlus, MySql.Data, 读取 Excel, 数据插入, DataTable, 数据库连接, 异常处理