Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как узнать количество занятых строк и столбцов в Excel

Delphi , Технологии , OLE Automation MSOffice

Как узнать количество занятых строк и столбцов в Excel

Автор: Квасницкий Константин
WEB-сайт: www.bpressa.ru

var
  MyExcel: Variant;
  Rows, Columns: Integer;
begin
  MyExcel := CreateOleObject('Excel.Application');
  MyExcel.WorkBooks.Open('ExcelFileName');
  Rows := MyExcel.ActiveSheet.UsedRange.Rows.Count;
  Columns := MyExcel.ActiveSheet.UsedRange.Columns.Count;

Here is the translation of the Delphi code snippet into Russian:

Код на языке Delphi для взаимодействия с Excel!

Код предназначен для открытия файла Excel и последующего извлечения количества использованных строк и столбцов в активной таблице.

Вот разбивка того, что каждый ряд делает:

  1. var MyExcel: Variant; Rows, Columns: Integer;: Объявляем три переменные: MyExcel типа Variant, которая будет хранить объект приложения Excel; Rows и Columns - целые числа, которые будут хранить количество использованных строк и столбцов соответственно.
  2. MyExcel := CreateOleObject('Excel.Application');: Создаем экземпляр объекта приложения Excel с помощью функции CreateOleObject, передавая строку 'Excel.Application'.
  3. MyExcel.WorkBooks.Open('ExcelFileName');: Открываем указанный файл Excel (замените 'ExcelFileName' на ваше актуальное имя файла и пути).
  4. Rows := MyExcel.ActiveSheet.UsedRange.Rows.Count;: Получаем количество использованных строк в активной таблице, доступ к которой мы получаем через свойство UsedRange, которое возвращает объект диапазона, представляющего использованные ячейки в таблице. Затем вызываем метод Count на свойстве Rows объекта диапазона, чтобы получить количество строк.
  5. Columns := MyExcel.ActiveSheet.UsedRange.Columns.Count;: Аналогично получаем количество использованных столбцов, доступ к которому мы получаем через свойство UsedRange, а затем вызываем метод Count на свойстве Columns объекта диапазона.

Код - хороший стартовый пункт, но стоит отметить:

  • Вам всегда нужно проверять, существует ли файл и может ли быть открыт перед попыткой открытия.
  • Если вы хотите работать с конкретной таблицей (не только активной), вы можете использовать коллекцию Worksheets вместо ActiveSheet.
  • Код использует раннюю связь, что означает, что он требует ссылки на тип библиотеки Excel в вашем проекте Delphi. Вы можете добавить эту ссылку, нажав правой кнопкой мыши на ваш проект в менеджере проектов, выбрав "Просмотр" > "Типовая библиотека" и добавив "Excel 12.0 Object Library" (или соответствующей версии для вашего установки Excel).

Вот альтернативное решение с использованием поздней связи:

var
  MyExcel: Variant;
  Rows, Columns: Integer;

begin
  MyExcel  := CreateOleObject('Excel.Application');
  try
    MyExcel.Workbooks.Open('ExcelFileName');
    Rows  := VarArrayHighBound(MyExcel.ActiveSheet.UsedRange.Value, 1);
    Columns  := VarArrayHighBound(MyExcel.ActiveSheet.UsedRange.Value, 2);
  finally
    MyExcel.Quit;
  end;
end.

В этом коде мы используем позднюю связь, чтобы избежать необходимости ссылки на тип библиотеки Excel. Мы также используем VarArrayHighBound для получения количества элементов в каждом измерении свойства Value объекта диапазона. Наконец, мы вызываем Quit на объекте приложения Excel, когда мы закончили с ним, чтобы освободить системные ресурсы.

Статья рассказывает о способе определения количества занятых строк и столбцов в файле Excel с помощью программирования на языке Delphi.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: OLE Automation MSOffice ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-20 10:25:24/0.0072331428527832/2