我在将电子表格加载到 SQL Server 数据库时遇到了很多麻烦。
目前,我正在使用 SSIS 包来加载数据,我必须进行大量调整才能加载数据:
- 所有数字都必须格式化为文本(否则它们无法正确加载)。
- 有时数字必须以单引号 (') 开头才能加载。
- 如果一列混合了数字单元格和文本单元格,则文本单元格必须位于文件的首位(否则仅加载数字而文本为 NULL)。
- 如果用户更改列名,则不会加载该文件。
- 如果用户更改选项卡名称,则不会加载该文件。
- 如果用户添加新列(即使在工作表的末尾),文件也不会加载。
- 文件中的额外表格不是问题,谢天谢地!
- 日期似乎很敏感,无论它们是否会正确加载。
- Excel 文件的连接字符串必须包含“IMEX=1”,否则情况会更糟。
- 即使在 64 位系统上,计划的 SSIS 作业也必须以 32 位运行。
我一直在将数据(通常每个文件 200,000-500,000 行)加载到所有字段定义为nvarchar
. 然后,当加载时,我在 SSIS 包的下一步中将该数据传输到带有类型数据字段的工作表。
我必须对用户提出的关于如何格式化 Excel 文件的所有要求真的很痛苦。我们通常必须多次发回文件,直到所有格式问题都正确后才能加载文件。我想消除这种颠簸。
我知道我不是唯一面临此类问题的人。所以,我必须问...
在将数据加载到 SQL Server 数据库中时,有什么比 Excel 更好的替代方法?
或者,我是不是走错了路?我应该使用 SSIS 以外的东西来加载 Excel 电子表格吗?