要将Excel文件的数据上载到数据库,可以按照以下步骤进行:
-
安装必要的NuGet包:你需要安装
EPPlus
或ExcelDataReader
来读取Excel文件,以及System.Data.SqlClient
来连接数据库。 -
读取Excel文件:使用
EPPlus
或ExcelDataReader
读取Excel文件中的数据。 -
将数据插入数据库:使用
SqlConnection
和SqlCommand
将读取的数据插入到数据库中。
以下是一个示例代码,展示了如何使用 EPPlus
读取Excel文件并将数据插入到SQL Server数据库中:
using System;
using System.Data.SqlClient;
using System.IO;
using System.Web.UI;
using OfficeOpenXml;
public partial class UploadExcel : Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void UploadButton_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string fileExtension = Path.GetExtension(FileUpload1.FileName).ToLower();
if (fileExtension != ".xlsx" && fileExtension != ".xls")
{
// 提示用户文件格式不正确
ErrorMessage.Text = "请上传Excel文件(.xlsx或.xls)。";
return;
}
string filePath = Path.Combine(Server.MapPath("~/Uploads"), FileUpload1.FileName);
FileUpload1.SaveAs(filePath);
try
{
using (var package = new ExcelPackage(new FileInfo(filePath)))
{
ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
int rowCount = worksheet.Dimension.Rows;
int colCount = worksheet.Dimension.Columns;
using (SqlConnection conn = new SqlConnection("your_connection_string"))
{
conn.Open();
for (int row = 2; row <= rowCount; row++) // Assuming the first row is header
{
string col1 = worksheet.Cells[row, 1].Text;
string col2 = worksheet.Cells[row, 2].Text;
// Add more columns as needed
// 验证数据格式
if (string.IsNullOrEmpty(col1) || string.IsNullOrEmpty(col2))
{
// 跳过无效数据
continue;
}
string query = "INSERT INTO YourTable (Column1, Column2) VALUES (@col1, @col2)";
using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@col1", col1);
cmd.Parameters.AddWithValue("@col2", col2);
// Add more parameters as needed
cmd.ExecuteNonQuery();
}
}
}
}
SuccessMessage.Text = "文件上传并处理成功。";
}
catch (Exception ex)
{
// 处理异常
ErrorMessage.Text = "处理文件时出错:" + ex.Message;
}
}
else
{
ErrorMessage.Text = "请选择一个文件进行上传。";
}
}
}
在上面的代码中:
FileUpload1
是一个FileUpload
控件,用于上传Excel文件。ExcelPackage
类用于读取Excel文件。SqlConnection
和SqlCommand
用于连接和操作数据库。
请确保替换 "your_connection_string"
为你的实际数据库连接字符串,并根据你的数据库表结构调整插入查询和参数。