Чтобы избежать зацикливания и воспользоваться почти мгновенной скоростью выполнения, вы можете использовать метод Excel.WorksheetFunction.CountA
, который возвращает тот же результат, что и функция листа = CountA ().
Предполагая, что ваша ссылка на Excel.Application называется «excelApp», а ваша ссылка на Excel.Worksheet - «рабочая таблица», вы можете использовать код, подобный следующему в C # 4.0:
// 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.
}
В C # 3.0 и ниже он более многословен, потому что вы должны явно указать отсутствующие необязательные аргументы:
// 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.
}
Я думаю, что это должно сделать это для вас!
Mike