C#WinForm获取Excel数据到DataTable

提示:自用方法记录,结尾有完整方法


前言

通过OleDbConnection类对文件进行操作
OleDbConneetion是ADO.NET提供的支持OLE DB类型数据库连接的类,Access、Excel

链接: 详细内容大家可以在官网查看

二、使用步骤

1.添加引用

代码如下(示例

using System.Data.OleDb;

2.创建OpenFileDialog对象

选择文件
代码如下(示例):

 OpenFileDialog ofd = new OpenFileDialog();
 ofd.Filter = "Excel 文件|*.xlsx;*.xls";
 ofd.Title = "选择要导入的Excel文件";

3.用户选择路径后获取数据

①提示用户选择文件路径
②创建OleDbConnection对象链接
③查询数据并保存到DataTable中
代码如下(示例):

// 显示对话框并获取用户选择的文件路径
if (ofd.ShowDialog() == DialogResult.OK)
{
    string filePath = ofd.FileName;

    // 创建OleDbConnection对象并连接到Excel文件
    string connectionString = $"Provider=Microsoft.ACE.OLEDB.19.0;Data Source={filePath};Extended Properties='Excel 12.0 Xml;HDR=YES;'";
    OleDbConnection connection = new OleDbConnection(connectionString);
    connection.Open();

    // 创建OleDbCommand对象并查询第一个工作表的数据
    string query = "SELECT * FROM [Sheet1$]";
    OleDbCommand command = new OleDbCommand(query, connection);
    OleDbDataAdapter adapter = new OleDbDataAdapter(command);

    // 将数据填充到DataTable中
    
    adapter.Fill(dt);

    // 关闭连接
    connection.Close();

    MessageBox.Show("导入完成");
}

完整代码

DataTable dt = new DataTable();

 public void LoadExcelToDataTable()
 {
     // 创建OpenFileDialog对象
     OpenFileDialog ofd = new OpenFileDialog();
     ofd.Filter = "Excel 文件|*.xlsx;*.xls";
     ofd.Title = "选择要导入的Excel文件";

     // 显示对话框并获取用户选择的文件路径
     if (ofd.ShowDialog() == DialogResult.OK)
     {
         string filePath = ofd.FileName;

         // 创建OleDbConnection对象并连接到Excel文件
         string connectionString = $"Provider=Microsoft.ACE.OLEDB.19.0;Data Source={filePath};Extended Properties='Excel 12.0 Xml;HDR=YES;'";
         OleDbConnection connection = new OleDbConnection(connectionString);
         connection.Open();

         // 创建OleDbCommand对象并查询第一个工作表的数据
         string query = "SELECT * FROM [Sheet1$]";
         OleDbCommand command = new OleDbCommand(query, connection);
         OleDbDataAdapter adapter = new OleDbDataAdapter(command);

         // 将数据填充到DataTable中
         
         adapter.Fill(dt_u9);

         // 关闭连接
         connection.Close();

         MessageBox.Show("导入完成");
     }
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值