標籤:blog os io 使用 ar strong for 資料 div
解決同一列中“字串”和“數字”兩種格式同時存在,讀取時,不能正確顯示“字串”格式的問題:set xlsconn=CreateObject("ADODB.Connection") xlsconn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(xlspath)&";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
主要是驅動的問題,需要添加hdr 和 imex,
其中,hdr取值yes,no ,表示第一行是否為欄位名
imex 取值1,2,
其中1 正是解決此問題的關鍵
“HDR=Yes;”指示第一行中包含列名,而不是資料;
“IMEX=1;”通知驅動程
序始終將“互混”資料列作為文本讀取。
兩者必須一起使用。
如果不行使用下邊的方法:
本以為這樣就OK了。但在實際使用過程中,這樣設定還是不行,查閱了不少資料才發現,原來還有一個註冊表裡的資訊需要修改,這樣帶能讓excel不再使用前8行的內容來確定該列的類型。
註冊表修改內容如下:
在HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Excel有一個TypeGuessRows值,預設是8,表示會先讀取前8列來決定每一個欄位的型態,所以如果前8列的資料都是數字,到了第9列以後出現的文字資料都會變成null,所以如果要解決這個問題,只要把TypeGuessRows機碼值改成0,就可以解這個問題了。
OleDbConnection 從索引 166 處開始,初始化字串的格式不符合規範。
串連Excel 提示 從索引 166 處開始,初始化字串的格式不符合規範。
原來機器只安裝的wps測試沒問題 連接字串是 String.Format(@"Provider=Microsoft.Ace.OleDb.12.0;Persist Security Info=False;Data Source={0};Extended Properties=\Excel 12.0;HDR=YES;IMEX=1;\", FilePath);
出錯原因是 Extended Properties裡面的內容沒有加引號
String.Format(@"Provider=Microsoft.Ace.OleDb.12.0;Persist Security Info=False;Data Source={0};Extended Properties=""Excel 12.0;HDR=YES;IMEX=1;""", FilePath);
解決讀取Excel表格中某列資料為空白的問題 c#