c#读取Excel后再存入MySQL中
在 C# 中读取 Excel 文件并将数据存储到 MySQL 数据库中涉及几个步骤:读取 Excel 数据、处理数据、连接 MySQL 数据库,以及将数据插入数据库。以下是详细的步骤和代码示例:
1. 准备工作
1.1 安装必要的库
读取 Excel 文件:使用
EPPlus
或NPOI
库。- EPPlus:用于处理 Excel 文件的强大库,支持读取和写入 Excel 文件。
- NPOI:另一个流行的库,支持多种 Excel 文件格式。
连接 MySQL:使用
MySql.Data
库。- 安装
MySql.Data
NuGet 包,用于与 MySQL 数据库进行交互。
- 安装
1.2 安装 NuGet 包
可以通过 NuGet 包管理器或命令行安装这些库:
bashdotnet add package EPPlus dotnet add package MySql.Data
2. 读取 Excel 文件
以下示例使用 EPPlus
库读取 Excel 文件:
csharpusing 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 并插入数据:
csharpusing 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 的代码整合到一个程序中:
csharpusing 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 数据库表的结构匹配。
- 异常处理:在实际应用中,添加适当的异常处理来处理可能的错误(如文件读取错误、数据库连接错误等)。
- 性能优化:对于大量数据插入,考虑使用批量插入操作以提高性能。
总结
- 安装库:使用
EPPlus
读取 Excel 文件,使用MySql.Data
与 MySQL 数据库交互。 - 读取 Excel 文件:解析 Excel 文件并将数据存储到
DataTable
。 - 插入 MySQL:连接 MySQL 数据库并将数据从
DataTable
插入到目标表中。 - 整合代码:将读取和插入逻辑整合到一个程序中,进行数据迁移。
关键字
C#
, Excel
, MySQL
, EPPlus
, MySql.Data
, 读取 Excel
, 数据插入
, DataTable
, 数据库连接
, 异常处理