Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Работа с ячейкой листа Microsoft Excel

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

Работа с ячейкой листа Microsoft Excel

Автор: Lookin
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Работа с ячейкой листа Microsoft Excel

Получает и заносит число типа double в ячейку листа Microsoft Excel

Зависимости: ComObj
Автор:       lookin, lookin@mail.ru, Екатеринбург
Copyright:   lookin
Дата:        30 апреля 2002 г.
***************************************************** }

//ВНИМАНИЕ: ОБЯЗАТЕЛЬНОЕ условие работы - наличие запущенного Excel

//получение double из заданной ячейки первого листа в заданной рабочей книге

function DoubleValueFromExcelCell(ExcelWorkBook, ExcelCell: string): double;
var
  i: integer;
  Excel, v: Variant;
begin
  Excel := GetActiveOleObject('Excel.Application');
  for i := 1 to Excel.Application.Workbooks.Count do
    if Excel.Application.Workbooks[i].FullName = ExcelWorkBook then
    begin
      v := Excel.Application.Workbooks[i].Sheets[1].Range[ExcelCell];
      DoubleValueFromExcelCell := VarAsType(v, varDouble);
      v := 0;
      Excel := 0;
    end;
end;

//занесение double в заданную ячейку первого листа в заданной рабочей книге

procedure DoubleValueToExcelCell(Value: double; ExcelWorkBook, ExcelCell:
  string);
var
  i: integer;
  Excel, v: Variant;
begin
  Excel := GetActiveOleObject('Excel.Application');
  for i := 1 to Excel.Application.Workbooks.Count do
    if Excel.Application.Workbooks[i].FullName = ExcelWorkBook then
    begin
      Excel.Application.EditDirectlyInCell := false;
      v := Value;
      Excel.Application.Workbooks[i].Sheets[1].Range[ExcelCell] := v;
    end;
end;

Привет! Вот перевод текста на русский язык:

Функции:

  1. DoubleValueFromExcelCell(ExcelWorkBook, ExcelCell: string): double; - Извлекает дробное значение из указанной ячейки в первой странице книги Excel.
    • Он итераторит через все открытые книги Excel и находит ту, которая соответствует параметру ExcelWorkBook.
    • Затем он извлекает значение указанной ExcelCell с помощью свойства Range.
    • Извлеченное значение конвертируется в тип double с помощью функции VarAsType.
  2. DoubleValueToExcelCell(Value: double; ExcelWorkBook, ExcelCell: string); - Записывает дробное значение в указанной ячейке первой страницы книги Excel.
    • Он итераторит через все открытые книги Excel и находит ту, которая соответствует параметру ExcelWorkBook.
    • Он устанавливает EditDirectlyInCell в false, чтобы предотвратить прямое редактирование ячейки.
    • Указанное значение Value присваивается указанной ExcelCell с помощью свойства Range.

Замечания:

  1. Оба функции требуют активной инстанции приложения Excel, что можно обеспечить запуском Excel перед выполнением этих программ Delphi.
  2. Код использует модуль ComObj, чтобы взаимодействовать с объектами COM Excel.
  3. Ошибка обработки не реализована в этом примере. Важно добавить механизмы обработки ошибок для готовой к производству кода.

Предложения по улучшению:

  1. Рассмотрите возможность добавления более robust способа обработки ошибок, например, проверки существования книги или страницы перед попыткой доступа к ним.
  2. Вам может понравиться реализация дополнительной функциональности, такой как обработка нескольких страниц в книге Excel или поддержка других типов Excel (например, строк).
  3. Если вы планируете использовать этот код в более крупном приложении, рассмотрите возможность упаковки этих функций в отдельный модуль или класс для лучшей организации и повторного использования.
  4. Внимайте тому, что это код является специфичным для Delphi и может не работать с другими языками программирования или платформами без изменений.

В целом, предоставленный код демонстрирует основное взаимодействие между Delphi и Microsoft Excel. Он может быть хорошим стартовым пунктом для более сложных задач автоматизации Excel.

Работа с ячейкой листа Microsoft Excel - статья, в которой описывается создание функции и процедуры для получения и занесения чисел типа double из/в ячейки листа Microsoft Excel.


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

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


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


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:21:20/0.0059070587158203/1