2009-01-13 74 views
0

我有一個使用OleDb將數據從excel文件讀取到DataSet中的過程。一切都很順利,直到我開始看到其中有前導0的數據。文本格式爲常規或文本。Excel,OleDb和前導零

我在OLEDB連接設置IMEX = 1,但我仍然可以在數據集中用於解決此一個可行的領先0

有誰知道的方式每個條目爲空值?

編輯

其位的附加信息,我必須保持領先的0和列的格式設置爲通用。我也嘗試過文字。

具有前導零的第一個條目在第11行中,並且返回null。此特定工作表上的所有其他數據均爲此列的編號。

+0

Excel和前導零是一個巨大的災難 – 2009-01-13 06:28:06

回答

0

我敢打賭,數據作爲文本存儲在Excel電子表格中;因爲它本質上不會有前導零(儘管單元格可以被格式化以顯示它們)。我期望OleDb詢問Excel是什麼數據類型,Excel認爲它們是字符串。

查看其中一個Excel單元格,看看它是否在頂部的數據輸入條中具有加載零點;或者它有一個主要的撇號或一些這樣的?

如果ihis是這種情況(或者即使它不是,但你想要未格式化的數據),離開我頭頂的一種方法是將工作表複製到另一個工作表並使用Val(地址)函數,並重新格式化而不引導零;然後從中讀取。

+0

我不能刪除前導零。數據顯示0作爲單元格中的第一個字符,沒有撇號。 – 2009-01-13 15:29:24

+0

那麼如何添加一列,將公式設置爲Val(badcolumn)? – dkretz 2009-01-14 01:04:50

0

我能看到的最好的一點是,您必須創建一個預先格式化的excel文件,然後將其用於您所需的數據。

+0

該類型已被設置爲該列的文本。除非我需要刪除並重新粘貼數據。 – 2009-01-13 15:28:51

0

您的第一個10行純數字數據?

然後驅動程序正在判斷整個列是數字。當它遇到不適合的數據時,它會窒息。你可能會看到這爲NULL或0

我會嘗試:
1)降IMEX - 實驗沒有它
2)嘗試添加一個單引號作爲第一個字符該列中的所有數據。
這個「強制文本」在Excel中。作爲一個測試,只要在前11行嘗試它。
這應該強制驅動程序將該列視爲文本。 NULL應該消失。

有一些方法可以增加行「樣本大小」......但我不記得要在連接字符串中使用的關鍵字。