Dot-Net
Jet Engine - 255 個字元截斷
我需要將 Excel 電子表格導入我的程序並具有以下程式碼:
string connectionString = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;IMEX=1;HDR=NO;""", MyExcelFile.xls); command.CommandText = "SELECT * FROM [Sheet1$]";(注意,上面的程式碼不是真正的程式碼,但應該讓你看到我在做什麼)
我正在導入文件,唯一的問題是 Excel 工作表中超過 255 個字元的任何列都被截斷。
有沒有辦法解決這種情況?
我在某處讀到,如果您確保前 8 行內的列中有一長行文本,那麼它將被視為備註欄位,因此不會被截斷,但這似乎不起作用。
有任何想法嗎?
格雷姆
可能您的問題有一個更簡單的解決方案,但作為最後的手段,請嘗試將您的 Excel 文件保存為 CSV 文本文件,然後使用正常文件和字元串操作類而不是 JET 引擎來處理它。
幾次碰到這個。幸運的是,有一個系統資料庫黑客要修復,在 MSDN 上描述:http: //support.microsoft.com/kb/189897
實際上,Excel 只查看前八行數據來確定列的長度。如果長度為 255 個字元或更少,則預設值為 255。我在上面引用的 MSDN 文章解釋瞭如何添加一個系統資料庫項“
TypeGuessRows”,它告訴 Excel 要掃描多少行以確定列長度。