【问题标题】:Filter Excel Data : .Net vs SSIS过滤 Excel 数据:.Net 与 SSIS
【发布时间】:2019-02-12 14:20:25
【问题描述】:

我在 excel 文件中有大量数据,每个文件至少有 20 列。 我正在使用.net(c#),我的任务是导入满足将数据插入SQL数据库的条件的行,例如,我只需要插入当前年份(或选定年份)的行,我也有列name 是 'Full Employee Name' 我需要检查它是否存在于表 Resource Human 中。

另外一个条件是检查SQL表中的列名是否相同。 我成功地用代码做到了,但至少有 200 行来做所有可能的检查。我阅读了有关 SSIS(集成服务,BI 工具)的信息,它看起来可以帮助我完成任务。

我的问题是怎么做的?我正在接受这个新概念。

【问题讨论】:

  • 通常您将所有内容加载到数据库(临时表)中,然后使用存储过程来执行所有验证逻辑。您可以使用 SSIS 将 excel 加载到临时表中,但也有许多其他工具。
  • 是的,这就是我正在做的,想法是我想在没有代码的情况下自定义它,也许映射可以帮助

标签: c# .net sql-server ssis etl


【解决方案1】:

我认为选择最佳方法是基于您的需求:

  • 如果您希望创建自动化作业并定期执行从 excel 到 SQL 的数据导入,我认为最好使用 SSIS
  • 如果您正在尝试创建一个将 excel 文件转换为 SQL 表的小工具,那么使用 .NET 就可以了
  • 如果您希望循环访问具有不同结构的 Excel 文件,则应使用 .NETyou have to convert files to .csv then use SSIS

您还可以参考以下 Microsoft 文档,了解将 Excel 文件导入 SQL 的更多选项:(SQL 查询、链接服务器、OPENROWSET ...)

【讨论】:

    【解决方案2】:

    如果您已经有了一个有效的 .net 解决方案,并且 200 行代码对我来说听起来没有那么糟糕,我不会费心寻找 SSIS 来替换它。

    【讨论】:

    • 现在我正在处理 15 列的问题,但是我有一些超过 20 列的 Excel 文件,将来我还需要能够自定义导入的列
    • 在 SSIS 中使用 Excel 是出了名的棘手。我认为您最好将其保留在.net 中。除非您想在使用 SSIS 导入之前先将 Excel 文件导出为 .csv。
    • 是的,比 Excel 好得多。
    猜你喜欢
    • 2011-07-27
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多