Имя: Пароль:
1C
 
Как определить количество строк в Excel-файле?
0 Лойфер
 
26.10.06
12:18
Всю жизнь до этого момента я определял количество строк так:

Книга = Эксел.WorkBooks.Open(Путь);
Лист = Книга.WorkSheets(1);
СтрокНаЛисте = Лист.Cells.CurrentRegion.Rows.Count;

Но когда я попробовал определить колво строк у файла с неоднородными ячейками - приключился облом: выдает, что строк всего одна :(

Как быть?
1 Херрес
 
26.10.06
12:19
Количество строк в эксель файле - 65534 :)

если серьёзно, есть там usedregion, кажется, но он тоже ненадёжен.
Единственный надёжный способ - бежать по ячейкам и эмпирически искать пустое место
2 Andrey_spb
 
26.10.06
12:19
Проще всего так:
КолС=Лист.UsedRange.SpecialCells(11).Row;
но не всегда правильно...
3 Лойфер
 
26.10.06
12:20
Пасиб баааальшое - буду пробовать :)
4 Ксель
 
26.10.06
12:32
Excel=Новый COMОбъект("Excel.Application");
Kniga=Excel.Workbooks.Open(ПутьКФайлу);
Stranica = Kniga.Worksheets(1);
Massiv = Stranica.UsedRange.Value;
Kniga.Close(0);
ВсегоСтрок = Massiv.GetUpperBound(1)
5 Лойфер
 
26.10.06
12:38
Ух ты! И такое попробую!
А вообще вариант с...

КолС=Лист.UsedRange.SpecialCells(11).Row;

...прокатил. Всем СПАСИБО!
6 vip1958
 
26.10.06
13:42
КолС=Лист.UsedRange.SpecialCells(11).Row;
Действительно не надежно! Пример: таблица из 8 строк, но если кто-нибудь из юзверей просто ткнется на любую ячейку скажем в 300 строке, то количество строк опять будет 65 тык с гаком.
По своему опыту согласен с Херрес "Единственный надёжный способ - бежать по ячейкам и эмпирически искать пустое место", правда ющу не пустое место определунный символ или набор в первой ячейке последненей строки.