下面我为你详细讲解“C#窗体读取EXCEL并存入SQL数据库的方法”的完整攻略。
一、准备工作
在开始编写代码前,需要先安装以下几个组件:
- Microsoft.Office.Interop.Excel (用于读取Excel文件);
- System.Data.SqlClient (用于操作SQL数据库)。
二、读取Excel文件
首先,需要引入Microsoft.Office.Interop.Excel dll:
using Excel = Microsoft.Office.Interop.Excel;
读取Excel文件的核心代码如下所示:
// 创建Excel对象
Excel.Application excel = new Excel.Application();
Excel.Workbook workbook = excel.Workbooks.Open(filePath);
// 读取页签
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Sheets[sheetName];
// 获取行数和列数
int rowsCount = worksheet.UsedRange.Rows.Count;
int columnsCount = worksheet.UsedRange.Columns.Count;
// 遍历每一行
for (int i = 2; i <= rowsCount; i++)
{
// 读取每一行数据中的每一列
for (int j = 1; j <= columnsCount; j++)
{
string cellValue = ((Range)worksheet.Cells[i, j]).Text.ToString();
// 将数据存入对象或数组中
}
}
// 释放Excel对象
workbook.Close(false);
excel.Quit();
三、存入SQL数据库
在读取Excel文件后,需要将读取的数据存入SQL数据库。需要注意的是,必须对读取的Excel数据进行类型转换,以便与数据库表中的数据类型匹配。
操作SQL数据库的核心代码如下所示:
// 连接数据库
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand();
command.Connection = connection;
connection.Open();
// 将数据插入到数据库中
string sql = "INSERT INTO 表名 (字段1, 字段2, ...) VALUES (@字段1, @字段2, ...)";
command.CommandText = sql;
command.Parameters.AddWithValue("@字段1", 值1);
command.Parameters.AddWithValue("@字段2", 值2);
// 添加其他字段和值
command.ExecuteNonQuery();
connection.Close();
四、示例说明
下面给出两个示例,分别是读取Excel文件和存入SQL数据库的完整代码:
1. 示例一:读取Excel文件
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// 打开文件选择对话框
OpenFileDialog openFile = new OpenFileDialog();
openFile.Filter = "Excel文件|*.xlsx;*.xls";
if (openFile.ShowDialog() == DialogResult.OK)
{
// 获取选择的Excel文件路径和名称
string filePath = openFile.FileName;
string sheetName = "Sheet1"; // 指定页签名称
// 创建Excel对象
Excel.Application excel = new Excel.Application();
Excel.Workbook workbook = excel.Workbooks.Open(filePath);
// 读取页签
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Sheets[sheetName];
// 获取行数和列数
int rowsCount = worksheet.UsedRange.Rows.Count;
int columnsCount = worksheet.UsedRange.Columns.Count;
// 遍历每一行
for (int i = 2; i <= rowsCount; i++)
{
// 读取每一行数据中的每一列
for (int j = 1; j <= columnsCount; j++)
{
string cellValue = ((Excel.Range)worksheet.Cells[i, j]).Text.ToString();
// 将数据存入对象或数组中
}
}
// 释放Excel对象
workbook.Close(false);
excel.Quit();
}
}
}
}
2. 示例二:存入SQL数据库
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
using System.Data.SqlClient;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// 读取Excel文件
// ...
// 连接数据库
string connectionString = "Server=servername;Database=dbname;User Id=username;Password=password;";
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand();
command.Connection = connection;
connection.Open();
// 将数据插入到数据库中
string sql = "INSERT INTO 表名 (字段1, 字段2, ...) VALUES (@字段1, @字段2, ...)";
command.CommandText = sql;
command.Parameters.AddWithValue("@字段1", 值1);
command.Parameters.AddWithValue("@字段2", 值2);
// 添加其他字段和值
command.ExecuteNonQuery();
connection.Close();
}
}
}
以上就是“C#窗体读取EXCEL并存入SQL数据库的方法”的完整攻略。希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#窗体读取EXCEL并存入SQL数据库的方法 - Python技术站