我有一个Excel '97电子表格,由外部自动化流程生成,我想通过SSIS导入到SQL [2008 R2]表中。我导入的列包含某些单元格中的文本值和其他单元格中的日期值。为了连接到Excel数据,我有一个“Excel源”数据流源,其中OpenRowset属性已设置为特定的列范围:Sheet1 $ A1:A100。我在Excel Source之后直接添加了一个网格数据查看器,以便我可以查看“原始”结果。
执行包时,我查看数据查看器结果,包含日期的所有单元格都以NULL形式出现。奇怪的是,文本字段和数字字段很好,并在数据查看器中正确显示。如果我在日期值前加上一个引号(撇号),以便将日期视为文本,则会正确导入。如果我右键单击Excel中的某个日期字段并转到“格式化单元格...”,它们都会显示为“日期”。
这些Excel文件是由我无法控制的进程自动生成的,我无法手动编辑每个文件以使其正确导入。在Excel Source的External Columns部分中,该列显示的数据类型为“Unicode string [DT_WSTR]”,因此我认为它只会将其作为文本导入。
我非常感谢有关如何正确导入这些日期值的任何建议。提前谢谢!
答案 0 :(得分:1)
我不知道在SSIS中是否有一种“好”的方式来处理这种情况,但我可以想到一些或多或少的丑陋想法。为了增加hackiness:
我认为#1是最好的长期解决方案,但听起来不会很快发生。也就是说,将电子表格保存为文本至少可以使SSIS能够轻松处理,这可能足以克服当前的障碍。