Sql server 将Excel和csv动态加载到Sql server

Sql server 将Excel和csv动态加载到Sql server,sql-server,excel,csv,ssis,etl,Sql Server,Excel,Csv,Ssis,Etl,我想根据数据库表中的配置,将巨大的excel和csv文件数据动态加载到SQL server中。每个文件将不同于另一个,它应该动态加载到表中,请提供实现它的最佳方法 我已尝试使用ssis,但对于excel,ssis将根据前8行确定列数据类型,因为它会导致问题。在excel中,将所有有问题的单元格格式化为文本;默认情况下,所有列的格式均为“常规”。现在,保存更改并重试。你应该得到你想要的。有关所有详细信息,请参见。C#解决方案 最近,我在Git Hub上启动了一个新项目,这是一个使用C#开发的类库。

我想根据数据库表中的配置,将巨大的excel和csv文件数据动态加载到SQL server中。每个文件将不同于另一个,它应该动态加载到表中,请提供实现它的最佳方法


我已尝试使用ssis,但对于excel,ssis将根据前8行确定列数据类型,因为它会导致问题。

在excel中,将所有有问题的单元格格式化为文本;默认情况下,所有列的格式均为“常规”。现在,保存更改并重试。你应该得到你想要的。有关所有详细信息,请参见。

C#解决方案 最近,我在Git Hub上启动了一个新项目,这是一个使用C#开发的类库。您可以使用它使用模式映射方法将表格数据从excel、word、powerpoint、文本、csv、html、json和xml导入到具有不同模式定义的SQL server表中。请访问:

您可以按照此Wiki页面获取分步指南:


SSIS解决方案 如果您希望使用SSIS,可以参考我对以下主题的回答:


目前为止的主题太宽泛了。检查主题以控制用于推断的行数。如果您不喜欢结果,请更改类型。没有任何应用程序会一直猜测正确的类型。@PanagiotisKanavos我认为使用Office.Interop程序集的C#解决方案可以解决这个问题。这将把强类型日期和数字转换为本地化字符串,使数据导入更加困难。可能是因为SSIS遇到了字符串问题。好吧,我已经好几年没有使用SSIS了,但我记得,它解决了我遇到的所有问题。另外,将IMEX=1添加到Excel驱动程序连接字符串的末尾。这将允许Excel以Unicode格式读取值。有关更多详细信息,请参阅下面的链接。那么,您将如何处理日期字符串?不,IMEX=1不会使Excel以Unicode格式读取任何内容。Excel文件是Unicode-
xlsx
是一个包含XML文件的zip包。我曾尝试更改IMEX=1,也更改了regedit,但同样的问题仍然存在,而且每次加载都必须加载大小为500MB到1GB的文件。我不仅要查看SSI,还要查看任何可以更快加载文件的工具或脚本,请建议