【问题标题】:Importing huge excel (xlsx) into SQL Server using SSIS使用 SSIS 将巨大的 excel (xlsx) 导入 SQL Server
【发布时间】:2018-02-27 10:38:02
【问题描述】:

我有大约 300MB+ 大小的 excel 文件。当我尝试使用传统的 excel 源和 SQL 目标加载它时,它继续旋转。连一行都没有加载。

有没有办法使用 SSIS 将巨大的 excel 文件加载到 SQL Server?可以减少成小块(批处理)?

【问题讨论】:

  • 如果您将 xlsx 文件限制为更少的行,您的流程是否真的有效?我建议只尝试 100 个!
  • 你可以很好地处理示例文件
  • 如果将Excel文件导出为csv,然后尝试使用SSIS导入csv,是否有效?
  • 我认为阅读本身的问题,无论如何都会尝试发表评论
  • Excel 可能在 CR 或 LF 或 TAB 等单元格中有讨厌的隐藏字符...如果不加引号,这些可能会对导入造成严重破坏...另存为 CSV 文件,然后将 CSV 导入SQL 和备用错误,这至少会告诉你哪一行有问题字符

标签: sql-server excel ssis xlsx


【解决方案1】:

哇,这是一个巨大的 Excel 文件。我不知道您实际上可以保存那么大的文件。无论如何,如果我是你,我会将其转换为 .xlsb,它是二进制的,可能只有 .xlsx 文件大小的 1/4。或者,将其保存为 cvs 文件,然后将 csv 加载到 SQL Server。您可以使用这样的概念非常轻松地将 csv 文件批量插入 SLQ Seerver。

BULK
INSERT CSVTest
FROM 'c:\csvtest.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
--Check the content of the table.
SELECT *
FROM CSVTest
GO
--Drop the table to clean up database.
DROP TABLE CSVTest
GO

有关如何执行此操作的一些想法,请参阅下面的链接。

https://archive.is/RATG#selection-443.0-561.3

https://blog.sqlauthority.com/2012/06/20/sql-server-importing-csv-file-into-database-sql-in-sixty-seconds-018-video/

https://blog.sqlauthority.com/2011/11/02/sql-server-import-csv-into-database-transferring-file-content-into-a-database-table-using-csvexpress/

https://blog.sqlauthority.com/2011/05/12/sql-server-import-csv-file-into-database-table-using-ssis/

【讨论】:

  • 这会很好用,除非 CSV 文件存在格式问题(来自 Excel 工作表中的隐藏问题)
猜你喜欢
  • 1970-01-01
  • 2014-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
相关资源
最近更新 更多