将高度格式化的数据从Excel导入SQL Server的最佳方法是什么? 基本上我有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
答案 0 :(得分:1)
你可以写一个简单的解析器应用程序。有很多api可以处理读取excel文件。
我用java编写了一个,只用了一两天。
here是一个api。
祝你好运
编辑:忘记提及我们还需要一个sql api,例如JDBC。我们再次将JDBC用于大多数应用程序并且工作得很好。答案 1 :(得分:1)
就我个人而言,我会使用SSIS。设置文件格式看起来相对复杂可能并不简单(但我怀疑无论使用什么工具都可能都是这样),但只要它保持一致,它每个月都会快速运行,SSIS包很容易置于源头控制之下。由于SSIS是SQL Server的一部分,因此很容易确保所有服务器都可以使用它。关键是要充分了解该格式与如何在数据库中存储数据的关系。无论你使用什么工具,这都是困难的部分。
答案 2 :(得分:0)
假设您有Microsoft Excel,您还可以使用Excel自己公开的ActiveX接口。更多信息:
http://msdn.microsoft.com/en-us/library/wss56bz7(VS.80).aspx
您可以在任何可以使用ActiveX(C ++,VB6,VB.NET等)的东西中使用它来创建解析器,以跟进Berek所说的内容。
答案 3 :(得分:0)
我之前用perl和MYSQL做过这个。我写了一个简单的perl脚本,它解析文件并将内容输出到.sql文件。然后,这可以手动完成或包含在perl脚本中,打开MYSQL并使用.sql文件。
答案 4 :(得分:0)
您可能希望查看SQL Server中的CLR过程和函数。使用CLR过程,您可以在VB或C#.NET应用程序中执行所有清理操作,但仍然可以像运行任何其他存储过程或UDF一样从SQL Server运行作业。
答案 5 :(得分:0)
这看起来有点简单,但您可以简单地以csv格式转储数据并对输出进行一些解析以转换为SQL的插入语句。
答案 6 :(得分:0)
对于基于java的应用程序,POI(http://poi.apache.org/)非常适合Excel集成应用程序。