C# .NET、webform 怎么把Excel文件的数据上载到数据库

要将Excel文件的数据上载到数据库,可以按照以下步骤进行:

  1. 安装必要的NuGet包:你需要安装 EPPlus 或 ExcelDataReader 来读取Excel文件,以及 System.Data.SqlClient 来连接数据库。

  2. 读取Excel文件:使用 EPPlus 或 ExcelDataReader 读取Excel文件中的数据。

  3. 将数据插入数据库:使用 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 = "请选择一个文件进行上传。";
        }
    }
}

在上面的代码中:

  1. FileUpload1 是一个 FileUpload 控件,用于上传Excel文件。
  2. ExcelPackage 类用于读取Excel文件。
  3. SqlConnection 和 SqlCommand 用于连接和操作数据库。

请确保替换 "your_connection_string" 为你的实际数据库连接字符串,并根据你的数据库表结构调整插入查询和参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值