Dot-Net

Jet Engine - 255 個字元截斷

  • April 28, 2016

我需要將 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 要掃描多少行以確定列長度。

引用自:https://stackoverflow.com/questions/1519288