2008-08-22 44 views

回答

6

我相信你必須在連接字符串中設置選項來強制文本導入,而不是自動檢測它。

Provider=Microsoft.ACE.OLEDB.12.0; 
    Data Source=c:\path\to\myfile.xlsx; 
    Extended Properties=\"Excel 12.0 Xml;IMEX=1\"; 

您的milage可能會因您安裝的版本而異。 IMEX = 1擴展屬性告訴Excel將混合數據視爲文本。

1

前綴與「

1

加前綴的單元格的內容與」強制Excel將其視爲文本,而不是一個數字。 '將不會顯示在Excel中。

0

我認爲這樣做的方法是格式化源Excel文件,使列的格式設置爲文本而不是常規。選擇整個列並右鍵單擊並選擇格式單元格,從選項列表中選擇文本。

我認爲這將明確定義列內容是文本,應該這樣對待。

讓我知道這是否有效。

0

將文件另存爲製表符分隔的文本文件也運行良好。

--- old 不幸的是,我們不能依靠excel文檔的列來保持特定的格式,因爲用戶會定期將數據粘貼到其中。如果我們依賴某個列的特定數據類型,我不希望應用程序崩潰。

用'會工作的前綴,是否有一種合理的方式來編程方式,一旦數據已經存在於Excel文檔?

1

有一個註冊表黑客可強制Excel比前8行,以瞭解更多閱讀列時確定類型:

變化

HKLM\Software\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows 

爲0來讀取所有的行,或另一個數字將其設置爲該行數。

這並不是說這將有一個小小的性能影響。

0

發送值00022556作爲'=" 00022556"'從SQL Server是處理前導零問題

0

您的字符串前添加「\ t」的好方法。它會使字符串看起來在一個新的選項卡中。