You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSIS中C#导入脚本导入他人保存的xlsx时返回空表问题

我最近搭建了一个SSIS批量导入任务,用来把外部驱动器文件夹里的xlsx文件批量上传到数据库,核心结构和关键代码分享给大家:

SSIS Excel批量导入任务实现

任务整体架构

  • 外层用For Each Loop容器遍历目标文件夹里的所有xlsx文件
  • 容器内部嵌套Data Flow Task,其中通过Script Component来处理Excel文件的读取和数据库写入逻辑

核心Excel数据查询方法

下面是我封装的用于读取Excel数据的C#方法,使用OLEDB连接来获取数据:

private DataTable QueryData(string FileName, string Header, string QueryString) 
{ 
    string connectionString; 
    OleDbConnection excelConnection; 
    OleDbDataAdapter dataAdapter; 
    DataSet excelDataSet; 

    // 构建ACE驱动连接字符串,需根据实际场景补全DataSource部分
    connectionString = "Provider = Microsoft.ACE.OLEDB.16.0; Data Source = " + FileName + 
                       "; Extended Properties = \"Excel 12.0 Xml; HDR=" + Header + ";\"";

    using (excelConnection = new OleDbConnection(connectionString))
    {
        excelConnection.Open();
        dataAdapter = new OleDbDataAdapter(QueryString, excelConnection);
        excelDataSet = new DataSet();
        dataAdapter.Fill(excelDataSet);
    }

    return excelDataSet.Tables[0];
}

关键注意事项

  • 必须确保运行SSIS包的机器已经安装了Microsoft ACE OLEDB 16.0驱动,否则会出现连接失败的错误
  • 连接字符串里的HDR参数要和传入的Header参数对应:Yes表示Excel第一行是表头,No表示所有行都是数据行
  • QueryString可以是类似SELECT * FROM [Sheet1$]的SQL语句,用来指定读取Excel里的具体工作表

内容的提问来源于stack exchange,提问作者northest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:33:03