2016-12-12 138 views
1

我想使用SSIS pkg導入excel數據,但它正在更改數據類型並將其轉換爲其他一些帶有十進制的格式。SSIS Excel數據導入 - 行中的混合數據類型

我拉從一組範圍內的數據

實施例: 範圍A5:AB20

我的數據列A5(M)= 1.2

SSIS導入有點像120000.0

我SSIS到進口A5 = 1.2

我試過,但我沒有......

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\ABCDPrograms.xlsx;Extended Properties="EXCEL 12.0 XML;HDR=YES;IMEX=1";

原始數據從一些舊系統導入的,我不能進行更改。

請直接點擊。謝謝

+0

你這是什麼意思是「失敗」?你有錯誤嗎? –

回答

1

你需要使用一個派生列轉換在數據流任務中的Excel電子表格和數據庫之間:

Excel文件,我知道你說你的電子表格顯示1.2,但我看不出有什麼在細胞,所以它看起來像較大的值是什麼,是在牢房裏:

enter image description here

衍生改造任務,舍入值(由100000等分),以1位小數,替換列值:

enter image description here

產生的數據庫條目,該列的數據類型設置爲十進制(8,1)或然而,許多前述數字,你需要):

enter image description here

希望幫助

+0

謝謝TJB - 我應該已經添加了.. 第5行和第20行之前還有很多其他數據。這些值可以在工作表(甚至是其他工作表)的其他地方計算出來。 Row5-20是'鏈接',並顯示1.2(如果點擊它將顯示公式與鏈接的單元格或工作表) 所以在現實中,它就像是廢除什麼顯示(即1.2) –

+0

好,但它不會顯示120k值正在傳遞給SSIS包。假設您正確識別SSIS包中電子表格中的列,並且您已正確設置SQL表,那麼這應該仍然有效。 另一種可能性是,當您選擇1.2列時,您錯誤地將其中包含120k的單元格映射到您的SQL列。在Excel電子表格上使用一些非常時髦的自定義格式來讓120k看起來像1.2,而不是公式。 – TJB

+0

測試你的解決方案,會讓你知道結果..謝謝TJB –