0

我正在寻找替代数据导入解决方案。目前我的流程如下:

  1. 在excel中打开一个大的xlsx文件
  2. 替换所有“|” (管道)带有空格或其他独特字符的
  3. 将文件另存为以竖线分隔的 CSV
  4. 使用 SQL Server Management Studio 2008 R2 中的导入向导导入 CSV 文件

该过程有效;但是,步骤 1-3 需要很长时间,因为要加载的文件非常大(大约 100 万条记录)。

根据一些研究,我发现了一些潜在的解决方案:a)批量导入 - 不幸的是,这并没有消除上面提到的步骤 1-3,因为文件需要转换为平面(或 CSV)格式 b)OpenRowSet/OpenDataSource - 这个问题有两个问题。首先,加载需要很长时间(一百万条记录大约需要 2 小时)。其次,当我尝试一次加载多个文件(大约 20 个文件,每个文件包含 100 万条记录)时,我收到“内存不足”错误

我还没有尝试过 SSIS;我听说大 xlsx 文件有问题

所以这引出了我的问题。是否有任何解决方案/替代选项可以更快地导入大型 Excel 文件?

非常感谢您的帮助。

4

2 回答 2

2

我喜欢 Excel 作为数据可视化工具,但它只是作为数据传输层。我的偏好是使用JET/ACE 驱动程序查询它或使用 C# 获取非表格数据

我还没有把它提高到数百万,但我不得不相信第一种方法必须比你现在的方法更快,这仅仅是基于你不必对数据执行双重读取和写入这一事实。

于 2013-09-17T02:45:38.890 回答
0

我之前做过的事情(我之所以提出是因为我看到您的文件类型是 XLSX,而不是 XLS)是通过 winzip 打开文件,提取 XML 数据,然后导入它。从 2007 年开始,XLSX 文件实际上是一个 zip 文件,其中包含许多文件夹/文件。如果 excel 文件很简单(不是很多宏、图表、格式等),您可以从后台的 XML 文件中提取数据。我知道你可以通过WINZIP看到它,我不知道其他压缩应用程序。

于 2013-09-16T21:15:01.967 回答