我有一個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