2009-01-05 17 views
1

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

文件格式是这样的:

              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 

回答

1

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

我写了一个在java中,它只花了一两天。

here是一个api。

好运

编辑:忘了提,我们还需要一个SQL API,如JDBC。我们再次将JDBC用于大多数应用程序,并且效果很好。

0

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

+0

有没有一个Perl可以用来以合理的方式访问Excel的库,还是你必须解析原始数据文件本身? – EdgarVerona 2009-01-05 19:10:11

1

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

0

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

0

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

0

对于基于Java的应用程序,POI(http://poi.apache.org/)对于Excel集成应用程序非常有用。

相关问题