Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2012, 18:08   #1
Demien
Форумчанин
 
Аватар для Demien
 
Регистрация: 01.08.2007
Сообщений: 222
По умолчанию Количество строк в файле excel

Каким образом средствами Delphi узнать количество строк в файле excel?
Жить тоже вредно, от этого умирают!!!
Demien вне форума Ответить с цитированием
Старый 16.01.2012, 18:18   #2
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

В файле или на листе?
ReportCube вне форума Ответить с цитированием
Старый 16.01.2012, 18:36   #3
Demien
Форумчанин
 
Аватар для Demien
 
Регистрация: 01.08.2007
Сообщений: 222
По умолчанию

Цитата:
Сообщение от ReportCube Посмотреть сообщение
В файле или на листе?
В файле... на листе...
У меня в файле только 1 лист.

Либо как можно получить последнюю строку?
Файл постоянно меняется, а мне нужен доступ к последней строке.
Жить тоже вредно, от этого умирают!!!
Demien вне форума Ответить с цитированием
Старый 16.01.2012, 19:00   #4
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Посмотрите здесь http://www.programmersforum.ru/showthread.php?t=179290
ReportCube вне форума Ответить с цитированием
Старый 16.01.2012, 19:17   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,759
По умолчанию

Я делал так:
Код:
  Ex := CreateOleObject('Excel.Application'); // Открываем Excel
  Ex.WorkBooks.Open ('Путь к файлу эксель');
  Ex.WorkBooks[1]; // Выбираем рабочую книгу
  Ex.Sheets[1]; // Выбираем рабочий лист
  // Активируем последнюю строчку
  Ex.Cells.SpecialCells($0000000B, EmptyParam).Activate;
  // Процедура загрузки
  for I := 1 to Ex.ActiveCell.Row do
    begin
      s := Ex.Cells[i,2]; //Грузим то что надо
    end;
  Ex.Quit; // Закрываем объект Excel
  Ex := Unassigned;
FaTaL вне форума Ответить с цитированием
Старый 16.01.2012, 19:23   #6
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

А если первая колонка будет десятой и строка двадцатой?
ReportCube вне форума Ответить с цитированием
Старый 16.01.2012, 19:46   #7
Demien
Форумчанин
 
Аватар для Demien
 
Регистрация: 01.08.2007
Сообщений: 222
По умолчанию

Цитата:
Сообщение от ReportCube Посмотреть сообщение
А если первая колонка будет десятой и строка двадцатой?
Исключено!
Жить тоже вредно, от этого умирают!!!
Demien вне форума Ответить с цитированием
Старый 16.01.2012, 19:52   #8
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

И что Ваш цикл делает с многострадальной S ?
ReportCube вне форума Ответить с цитированием
Старый 17.01.2012, 10:33   #9
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,759
По умолчанию

Цитата:
Сообщение от ReportCube Посмотреть сообщение
И что Ваш цикл делает с многострадальной S ?
Это я написал просто для примера. Топик Стартер не спрашивал что дальше делать, он просто спросил, как найти последнюю строку. Я ему показал, как я делал и всё. А на счет если не с первой строки или столбца, просто в цикле меняешь то что тебе нужно.
FaTaL вне форума Ответить с цитированием
Старый 10.04.2020, 13:17   #10
kuzduk
Пользователь
 
Регистрация: 02.01.2010
Сообщений: 54
По умолчанию

XL := CreateOleObject('Excel.Application' );
XL.Workbooks.Open(ExcelFilePath);

//Первый вариант:
UsedRowCount := iSheet.UsedRange.Rows.Count; //Если у тебя заняты первые десять строк то вернёт 10. Однако если идут первые две строки пустые, а потом 10 занятых, то один хрен вернёт 10, ибо возвращает количество занятых строк.
UsedColCount := iSheet.UsedRange.Columns.Count;
FirstUsedRow := iSheet.UsedRange.Row; //Номер первой строки в которой прописана ячейка
FirstUsedCol := iSheet.UsedRange.Column; //Номер первой колонки в которой прописана ячейка
LastUsedRow := FirstUsedRow + UsedRowCount - 1;
LastUsedCol := FirstUsedCol + UsedColCount - 1;


//Второй вариант: через активацию последней непустой ячейки
//const xlCellTypeLastCell = $0000000B;
iSheet.Cells.SpecialCells(xlCellTyp eLastCell, EmptyParam).Activate; //Если лист пуст(ни одна ячейка не прописана), то строка вызывает ошибку
LastUsedRow := XL.ActiveCell.Row;
LastUsedCol := XL.ActiveCell.Column;
мой сайт: kuzduk.ru
kuzduk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
автоматизация поиска данных excel файла в другом excel файле с соответствующими пометками! ruotches Microsoft Office Excel 23 18.06.2013 10:24
программа которая подсчитывает количество пустых строк в файле Вадим ы Помощь студентам 3 21.08.2010 08:32
Количество строк в файле Demien Общие вопросы Delphi 3 17.08.2009 18:48
Посчитать количество символов в файле Sabyr Помощь студентам 1 31.05.2009 18:50