我有一个Excel '97电子表格,它由外部自动过程生成,我想通过SSIS将其导入到SQL [2008 R2]表格中。我要导入的列包含某些单元格中的文本值和其他单元格中的日期值。要连接到Excel数据,我有一个“Excel源”数据流源,其中OpenRowset属性已设置为特定的列范围:Sheet1 $ A1:A100。我在Excel Source之后直接添加了一个网格数据查看器,以便我可以查看“原始”结果。Excel单元格的日期值无法通过SSIS正确导入
执行包时,我查看数据查看器结果,并将包含日期的所有单元格都作为NULL来处理。奇怪的是,文本字段和数字字段正常显示并在数据查看器中正确显示。如果我在日期值前面放置单引号(撇号),以便将日期视为文本,则会正确导入。如果我右键单击Excel中的某个日期字段并转到“格式化单元格...”,它们全部显示为“日期”。
这些Excel文件是由我无法控制的进程自动生成的,我无法手动编辑每个文件以使它们正确导入。在Excel Source的External Columns部分中,该列显示的数据类型为“Unicode字符串[DT_WSTR]”,所以我认为它只会将其作为文本导入。
我非常感谢任何关于如何让这些日期值正确导入的建议。先谢谢你!
你说你的列有文本和日期值的混合,并且列被导入为“字符串”。由于日期作为数字值存储在Excel中(并且只显示为文本),所以也许这就是为什么您的日期以空值显示的原因。一个好的开始将是至少让你的列数据类型一致。 –
听起来像问题存在于任何创建Excel文档的过程中。这些值的格式是什么?复制并粘贴进程为您踢出的值的示例,以便我们可以看到如何将它写入Excel文件。 – KreepN