使用.Net的OleDb我嘗試導入第一行可以爲空的Excel表。我想保留DataTable中的空行,以便將單元格稍後映射到Excel樣式的單元名稱「A1,A2,...」。但是不管我做什麼,第一行都被刪除了。爲什麼在使用OleDb的Excel導入中忽略第一個空行
Excel文件看起來像:
- - -
ABC XY ZZ
1 2 3
4 4 5
其中 「 - 」 是一個空單元格。 (我有沒有影響到進口的格式。)
簡化代碼:
string cnnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"file.xls\";Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"";
string mySheet = "Sheet1$";
OleDbConnection connection = new OleDbConnection(cnnStr);
DataSet Contents = new DataSet();
using (OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [" + mySheet + "]", connection))
{
adapter.Fill(Contents);
}
Console.WriteLine(Contents.Tables[0].Rows.Count); // prints: 3
Console.WriteLine(Contents.Tables[0].Rows[0].ItemArray[0]); // prints: ABC
任何想法如何保留該空行?
ps:我發現How to count empty rows when reading from Excel,但無法重現它。
如果第二行是您的實際標題行,您爲什麼需要保留空行?否則,如果您需要保留一致的功能,您是否可以不將簡單的空行插入到您的轉換中? – 2012-04-04 12:01:47
正如我所說的,我想將單元格映射到Excel樣式單元格名稱(A1,B2等)。更具體地說:如果Excel包含一個不需要的值或未知的標題名稱,我希望是abte告訴用戶「單元格A2中的值不正確。」目前這個工作如果沒有空行存在。空行時,編號被移位。 – Hannobo 2012-04-04 13:25:41
我現在有同樣的問題。你有沒有設法解決這個問題? – 2015-05-19 11:43:15