我应该如何将高度格式化的数据从Excel导入数据库?

将高度格式化的数据从Excel导入SQL服务器的最佳方法是什么? 基本上我有250多个Excel文件已经从我们的商业用户喜欢的格式从报告工具中导出。 这是第三方工具,不能以任何其他格式导出数据。 我需要每月“刷洗”这些文件,并将它们导入到数据库中。 我想使用SQL Server 2005

文件格式如下所示:

Report Name Report Description MTH/DEC/2003 MTH/JAN/2004 MTH/FEB/2004 Data Type Data Type Data Type Grouping 1 1900 1700 2800 Grouping 2 1500 900 1300 Detail 300 500 1000 Detail 1100 200 200 Detail 100 200 100 

你可以写一个简单的parsing器应用程序。 有很多API会处理读取excel文件。

我用java写了一个,只花了一两天时间。

这里是一个API。

祝你好运

编辑:忘了提及,我们还需要一个SQL API,如JDBC 。 我们再次使用JDBC来处理大部分应用程序,并且效果很好。

我个人会用SSIS来做。 由于文件格式看起来相对复杂(但是我怀疑无论使用什么工具都可能是真的),所以设置起来可能并不是微不足道的,但只要保持一致,它将每月快速运行,并且SSIS包很容易置于源代码pipe理之下。 由于SSIS是SQL Server的一部分,所以很容易确保所有的服务器都可用。 关键在于如何确定格式与数据库中数据的存储方式有关。 不pipe你使用什么工具,这都是困难的部分。

假设你有Microsoft Excel,你也可以使用Excel自己公开的ActiveX接口。 更多信息在这里:

http://msdn.microsoft.com/en-us/library/wss56bz7(VS.80).aspx

你可以在任何可以使用ActiveX(C ++,VB6,VB.NET等)的东西中使用它来创buildparsing器,以跟踪Berek所说的内容。

我之前用perl和MYSQL做过这个。 我写了一个简单的perl脚本parsing文件并输出到.sql文件的内容。 然后,这可以手动完成或包含在perl脚本中,打开MYSQL并使用.sql文件。

这可能看起来有些简单,但是您可以简单地将数据转储为csv格式,并对输出进行一些parsing以转换为SQL的插入语句。

对于基于Java的应用程序,POI( http://poi.apache.org/ )对于Excel集成应用程序来说相当不错。

您可能需要查看SQL Server中的CLR过程和函数。 使用CLR过程,您可以在VB或C#.NET应用程序中完成所有的清理工作,但仍然可以像SQL Server一样从其他存储过程或UDF运行作业。