1

将高度格式化的数据从 Excel 导入 SQL Server 的最佳方法是什么。基本上,我有 250 多个 Excel 文件,它们以我们的业务用户喜欢的格式从报告工具中导出。这是无法以任何其他格式导出数据的第 3 方工具。我需要每月“清理”这些文件并将它们导入数据库。我想使用 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
4

7 回答 7

1

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

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

是一个api。

祝你好运

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

于 2009-01-05T19:00:22.977 回答
1

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

于 2009-01-05T19:17:45.127 回答
0

假设你有 Microsoft Excel,你也可以使用 Excel 自己暴露的 ActiveX 界面。更多信息在这里:

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

您也可以在任何可以使用 ActiveX(C++、VB6、VB.NET 等)的东西中使用它来创建解析器,以跟进 Berek 所说的内容。

于 2009-01-05T19:05:22.907 回答
0

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

于 2009-01-05T19:06:10.597 回答
0

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

于 2009-01-05T19:24:53.693 回答
0

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

于 2009-01-05T20:20:36.357 回答
0

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

于 2009-01-05T19:53:04.230 回答