我有同樣的問題。但不同的是,我的空行在中間,我有超過50列。用戶希望看到重複的行,這意味着我無法使用SELECT DISTINCT * FROM [excel]我如何從Excel中的DataTable中刪除空行?
空行可能在任何地方。迄今爲止我所面對的最大的Excel有超過10萬行。
是否有更有效的方法來刪除空行或必須循環並檢查每一行中的所有列?
void SelectDataFromExcel()
{
string connectionString = ConfigurationSettings.AppSettings["ExcelConn"].ToString();
OleDbConnection excelConnection = new OleDbConnection(connectionString);
excelConnection.Open();
OleDbCommand dbCommand;
OleDbDataAdapter dataAdapter;
foreach (var sheet in Sheets)
{
dbCommand = new OleDbCommand("select DISTINCT* From[" + sheet + "$]", excelConnection);
System.Threading.Thread.Sleep(1000);
this.Invoke((MethodInvoker)delegate
{
listBox1.Items.Add("Tablo ismi: " + sheet.ToUpper(CultureInfo.InvariantCulture) + " Tablo Satır Sayısı: "+ dSet.Tables[sheet].Rows[0][0].ToString());
});
dataAdapter = new OleDbDataAdapter(dbCommand);
dTable = new DataTable();
dataAdapter.Fill(dTable);
dTable.TableName = sheet.ToUpper(CultureInfo.InvariantCulture);;
ArrangedDataList(dTable);
FillSqlTable(dTable, dTable.TableName);
dTable.Dispose();
dataAdapter.Dispose();
dbCommand.Dispose();
}
excelConnection.Close();
excelConnection.Dispose();
t1.Abort();
}
您好我發現這是我在我的編輯答案已粘貼的解決方案 – 2012-05-05 09:43:54
不要忘記,以紀念答案接受並給予好評,如果你的作品.... – 2012-05-05 09:44:24