2013-06-19 20 views
0

我正在讀取數據集中的.xls文檔,並遇到將整列作爲錯誤數據類型傳遞的問題。它認爲該列基於數字,當它應該是基於字符串的。我有很多行,只是數字,然後只有少數是字母,1或2.我需要它將整個列視爲字母而不是數字。Excel讀取數據集時傳遞錯誤的列類型

現在發生的事情是,當它遇到那兩行時,它將它們還原爲空,並傳入其他所有內容。我記得在某個地方,excel決定了前8列的行類型,現在如果這是問題,有人知道我如何禁用此功能並告訴它該列是一個字符串。

我試過了:突出顯示整個列>右鍵單擊>格式>選定的文本,它仍然不起作用。

也試過:"Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=" + FileUpload1.PostedFile.FileName.ToString() + ";Extended Poperties=Excel 8.0;HDR=Yes;IMEX=1"

和:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileUpload1.PostedFile.FileName.ToString() + ";Extended Poperties=Excel 8.0;HDR=Yes;IMEX=1"

和:"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileUpload1.PostedFile.FileName.ToString() + ";Extended Properties=\"Excel 8.0;HDR=YES\";"; 錯誤我來到這裏是:ERROR [IM002] [微軟]找不到[ODBC驅動程序管理器]數據源名稱和默認驅動程序指定

+0

您是否正在閱讀使用AdoDB?這有幫助嗎? http://stackoverflow.com/questions/16718739/excel-to-ado-recordset-has-empty-values-for-numeric-cells/16721946#16721946 –

+0

我的連接字符串是:「Driver = {Microsoft Excel Driver(* .xls)}; DriverId = 790; Dbq =「+ FileUpload1.PostedFile.FileName.ToString() - 如果你能告訴我如何追加這個來包含這些人說的話會有很大的幫助,我認爲將解決問題。我只是不知道這可以用我的連接字符串。如果您確實回答了這個問題,請將其作爲回答發佈,以便我可以將其標記爲正確。 – Bojan

+0

這看起來像一個ODBC連接字符串 - 如果是這種情況,可以在運行此計算機的計算機上訪問ODBC數據源管理器,配置Excel驅動程序,展開選項,然後在那裏手動設置「掃描行」。 –

回答

0

我已經使用DTG.excel解決了這個問題,它是一個需要購買的解決方案,但它是唯一能夠使用而不必使用ACE驅動程序的方法。

0

編輯該行的第一個單元格,使其以撇號字符開頭。我有一個類似的問題,我記得它從單元格中的第一個值推斷出數據類型,這對我來說是個訣竅。

+0

我不能這樣做,值是隨機生成的,有時在單元格中不會有撇號字符。 – Bojan

+0

在這種情況下,看看這裏提到的註冊表更改... http://stackoverflow.com/questions/2567673/how-to-force-ado-net-to-use-only-the-system-string-datatype -in-the-readers-table – dazedandconfused

+1

我不能去改變每個使用這個網站的人的註冊表。 – Bojan

相關問題