Looping zu vermeiden und nahezu sofortige Ausführungsgeschwindigkeit ausnutzen, können Sie die Excel.WorksheetFunction.CountA
Methode verwenden, die das gleiche Ergebnis wie die = COUNTA() Tabellenfunktion zurückgibt.
Unter der Annahme, dass Ihre Excel.Application Referenz wird der Namen 'excelApp' und Ihre Excel.Worksheet Referenz ist 'Arbeitsblatt' genannt, können Sie Code wie die folgenden in C# 4.0 verwenden können:
// C# 4.0
int dataCount = (int)excelApp.WorksheetFunction.CountA(worksheet.Cells);
if (dataCount == 0)
{
// All cells on the worksheet are empty.
}
else
{
// There is at least one cell on the worksheet that has non-empty contents.
}
In C# 3.0 und unten, ist es ein bisschen ausführlicher, weil Sie explizit müssen die fehlenden optionale Argumente liefern:
// C# 3.0 and below
int dataCount = (int)excelApp.WorksheetFunction.CountA(
worksheet.Cells,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
if (dataCount == 0)
{
// All cells on the worksheet are empty.
}
else
{
// There is at least one cell on the worksheet that has non-empty contents.
}
ich denke, das es für Sie tun sollten!
Mike
Ich weiß, das alt ist, aber zusätzlich zu den Antworten machen diese Ereignisse aus, Arbeitsblatt füllen und sie dann wieder einschalten: 'currentInstance.EnableEvents = false/true; currentInstance.ScreenUpdating = false/true; ' –