J'ai le même problème. Mais les différences sont que mes rangs vides sont au milieu et j'ai plus de 50 colonnes. L'utilisateur veut voir les lignes dupliquées, ce qui signifie que je ne peux pas utiliser SELECT DISTINCT * FROM [excel]Comment puis-je supprimer des lignes vides de DataTable d'Excel?
Les lignes vides peuvent être n'importe où. Le plus grand excel auquel j'ai fait face jusqu'ici compte plus de 100 000 lignes.
Existe-t-il un moyen plus efficace pour SUPPRIMER les lignes vides ou dois-je faire une boucle et vérifier toutes les colonnes de chaque ligne ??
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();
}
Salut, je trouve une solution pour ce que j'ai collé dans ma réponse modifiée –
Ne pas oublier de marquer comme réponse acceptée et Upvote si cela fonctionne pour vous .... –