使用winform技术制作excel导入工具,读取excel表并将内容导入mysql数据库详细步骤
时间: 2023-12-10 22:41:29 浏览: 143
下面是使用Winform技术制作Excel导入工具,读取Excel表并将内容导入MySQL数据库的详细步骤:
1. 创建Winform项目并添加需要的控件,如按钮、文本框、DataGridView等。
2. 引用Excel操作库和MySQL操作库,如EPPlus和MySql.Data等。
3. 在按钮的Click事件中添加读取Excel表的代码,示例代码如下:
```
using OfficeOpenXml;
using System.Data;
using System.IO;
private void btnImport_Click(object sender, EventArgs e)
{
// 打开Excel文件
var openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel文件|*.xlsx";
if (openFileDialog.ShowDialog() != DialogResult.OK)
{
return;
}
var file = new FileInfo(openFileDialog.FileName);
// 读取Excel文件内容
using (var package = new ExcelPackage(file))
{
var worksheet = package.Workbook.Worksheets[1];
var dt = new DataTable();
for (int i = worksheet.Dimension.Start.Row; i <= worksheet.Dimension.End.Row; i++)
{
var row = worksheet.Cells[i, 1, i, worksheet.Dimension.End.Column];
if (i == worksheet.Dimension.Start.Row)
{
// 添加表头
foreach (var cell in row)
{
dt.Columns.Add(cell.Text);
}
}
else
{
// 添加数据行
var dataRow = dt.NewRow();
for (int j = 0; j < row.Count(); j++)
{
dataRow[j] = row.ElementAt(j).Text;
}
dt.Rows.Add(dataRow);
}
}
// 显示数据到DataGridView
dgvData.DataSource = dt;
}
}
```
4. 在导入数据的按钮Click事件中添加将数据导入MySQL数据库的代码,示例代码如下:
```
using MySql.Data.MySqlClient;
private void btnImportToDb_Click(object sender, EventArgs e)
{
// 连接MySQL数据库
var connectionString = "server=localhost;port=3306;database=test;uid=root;pwd=123456;charset=utf8";
using (var connection = new MySqlConnection(connectionString))
{
connection.Open();
var transaction = connection.BeginTransaction();
try
{
// 导入数据到数据库
var command = connection.CreateCommand();
command.Transaction = transaction;
foreach (DataGridViewRow row in dgvData.Rows)
{
var sql = $"INSERT INTO `table_name` (`column1`, `column2`, `column3`) VALUES ('{row.Cells[0].Value}', '{row.Cells[1].Value}', '{row.Cells[2].Value}')";
command.CommandText = sql;
command.ExecuteNonQuery();
}
transaction.Commit();
MessageBox.Show("导入成功!");
}
catch (Exception ex)
{
transaction.Rollback();
MessageBox.Show($"导入失败:{ex.Message}");
}
}
}
```
注意:上面的代码仅供参考,实际应用中需要根据实际情况进行修改。同时,为了保证程序的稳定性和安全性,还需要对各种异常情况进行处理。
阅读全文