English 中文(简体)
我应该如何将高度格式化的Excel数据导入数据库?
原标题:
  • 时间:2009-01-05 18:56:08
  •  标签:

What is the best way to import highly formatted data from Excel to SQL server. Basically I have 250+ Excel files that have been exported from a reporting tool in a format that our business users would prefer. This is a 3rd party tool that can not export data in any other format. I need to "scrub" these files on a monthly basis and import them into a database. I want to use 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
问题回答

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

我用Java写了一个,只用了一两天的时间。

这里有一个API。

好运

编辑:忘记提到我们还需要类似于JDBC的SQL API。再次强调,我们大多数应用程序都使用JDBC,并且运行良好。

个人而言,我会使用SSIS来完成。尽管文件格式看起来相对复杂(但我认为无论使用什么工具,这都可能是真实情况),建立起来可能不是那么容易,但只要保持一致,它将在每个月快速运行,而SSIS包易于进行源代码控制。由于SSIS是SQL Server的一部分,因此很容易确保所有服务器都可以使用它。关键是要了解该格式与如何将数据存储在数据库中的关系。无论使用什么工具,这都是难点。

假设您拥有Microsoft Excel,您也可以使用Excel自己暴露的ActiveX接口。此处有更多信息:

将此翻译成中文: http://msdn.microsoft.com/en-us/library/wss56bz7(VS.80).aspx http://msdn.microsoft.com/en-us/library/wss56bz7(VS.80).aspx

你可以将其用于任何可以使用ActiveX(C ++,VB6,VB.NET等)的东西中,创建一个解析器来跟进Berek所说的内容。

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

这可能看起来有点简单化,但您可以简单地将数据以csv格式转储,然后解析输出,将其转换为SQL的插入语句。

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

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





相关问题
热门标签