2013-07-18 51 views
0

我使用ACE OLE DB提供程序和執行SQL任務來創建Excel文件。 我使用的連接字符串是像這樣的:使用ACE OLEDB提供程序創建Excel文件的數據類型問題

Data Source=C:\MyFolder\MyFile.xlsx;Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties="EXCEL 12.0 XML;HDR=YES"; 

和SQL命令是這樣的一個:

CREATE TABLE [Query] (
[ProductAssemblyID] Numeric, 
[ComponentID] Numeric, 
[ComponentDesc] String, 
[TotalQuantity] Numeric, 
[StandardCost] Currency, 
[ListPrice] Currency, 
[BOMLevel] Numeric, 
[RecursionLevel] Numeric) 

然後我用Excel目標來填充文件。當我打開結果文件時,所有列都是文本列,數字以文本形式存儲。 我在哪裏做錯了?

謝謝。

回答

0

下面是我經常去你們這樣一個任務:

  1. 創建你想
  2. 列Excel文件添加Excel數據連接到新文件
  3. 創建數據流
  4. 添加OLE DB源SELECT ... FROM ...
  5. 添加Excel目標,並設置到Excel連接
  6. 地圖列在需要
  7. Excel目標高級編輯器,設置列中的數據類型
+0

邁克你好,我嘗試更改Excel目標外部列數據類型,但Excel目標顯示一條警告,指出元數據不同步,並且生成的Excel文件始終有文本列...我還檢查了Excel目標輸入列數據類型,分配在th正確的方式。我找不出一個解決方案... – lucazav

+0

一個不是很優雅的嘗試是有一個「虛擬」行與數據,因爲你需要它(即7月19日13日在日期字段)。這是一種混亂,我只用在數據源中,但是這是一件可以嘗試的事情。當SSIS將一個列作爲一個字符串進行投射時,我曾使用它,並且我需要它作爲一個int。 –

+0

是的,我知道這個解決方法。唯一的問題是我必須在運行時創建Excel文件,所以我不能使用具有隱藏行的模板。我只是試圖使用Jet提供程序,一切正常!所以SSIS以一種錯誤的方式管理ACE! :( – lucazav

相關問題