Среда, 18.06.2025, 08:14
Приветствую Вас Гость | RSS
Меню сайта
fff
  • Индексация
  • Девочки
    Форма входа
    Категории раздела
    Теория алгоритмов [3]
    Теория алгоритмов
    Code Snippets [1]
    Code Snippets
    Все о PHP [20]
    Все о PHP
    Visual C++ [13]
    Visual C++
    WIN32 API [7]
    WIN32 API
    Delphi [72]
    Delphi
    ASP [2]
    ASP
    Java [67]
    Java
    VBScript [6]
    VBScript
    CGI [2]
    CGI
    VRML [2]
    VRML
    PERL [9]
    PERL
    HTML [4]
    HTML
    XML [10]
    XML
    Архив записей

    Статьи по Оптимизации

    ПРОГРАММИРОВАНИЕ! СОЗДАНИЕ САЙТОВ И ИХ ОПТИМИЗАЦИЯ

    Главная » Статьи » Программирование » Delphi

    Обращение к Microsoft Excel из среды Delphi
    Обращение к Microsoft Excel из среды Delphi
    В этой статье мы рассмотрим основные конструкции, позволяющие получить доступ к книге MS Excel из Delphi.

    Организация доступа к книге EXCEL

    Для взаимодействия с MS Excel в программе необходимо использовать модуль ComObj
    uses ComObj;

    и объявить переменную для доступа к MS Excel следующего типа:
    var MsExcel: Variant;

    Инициализация переменной Excel в простейшем случае можно осуществить так:
    MsExcel := CreateOleObject('Excel.Application');

    Создание новой книги:
    MsExcel.Workbooks.Add;

    Открытие существующей книги (где path - путь к фалу с расширением xls.):
    MsExcel.Workbooks.Open[path];

    Открытие существующей книги только для чтения:
    MsExcel.Workbooks.Open[path, 0, True];

    Закрытие Excel:
    MsExcel.ActiveWorkbook.Close;
    MsExcel.Application.Quit;

    Блокировка запросов (подтвеждений, уведомлений) Ms Excel, например, запретить запрос на сохранение файла:
    MsExcel.DisplayAlerts:=False;

    Отображаем Excel на экране:
    MsExcel.Visible := True;

    или скрываем:
    MsExcel.Visible := False;

    Печать содержимого активного листа MS Excel:
    MsExcel.ActiveSheet.PrintOut;

    Чтение/запись данных в EXCEL

    Доступ к ячейке в текущей книге Excel можно осуществить следующим образом:

    Для записи значения в ячейку:
    MsExcel.Range['B2']:='Привет!';

    Для чтения значения из ячейки:
    s:=MsExcel.Range['B2'];

    где B2 - адрес ячейки.

    Или используя стиль ссылок R1C1:
    MsExcel.Range[MsExcel.Cells[2, 2]]:='Привет!';

    где [2, 2] - координата ячейки.

    Вообще, ячейке Excel можно присваивать любое значение (символьное, целое, дробное, дата) при этом Ms Excel установит форматирование в ячейке применяемое по умолчанию.

    Формат ячеек в EXCEL

    Выделить (выбрать) группу ячеек для последующей работы можно так:
    MsExcel.Range[MsExcel.Cells[1, 1], MsExcel.Cells[5, 3]].Select;
    // или
    MsExcel.Range['A1:C5'].Select;

    при этом будет выделена область находящаяся между ячейкой A1 и C5.

    После выполнения выделения можно установить объединение ячеек, перенос по словам, а также горизонтальное и вертикальное выравнивание:
    // объединение ячеек
    MsExcel.Selection.MergeCells:=True;
    // перенос по словам
    MsExcel.Selection.WrapText:=True;
    // горизонтальное выравнивание
    MsExcel.Selection.HorizontalAlignment:=3;
    // вериткальное выравнивание
    MsExcel.Selection.VerticalAlignment:=1;

    Для вертикального и горизонтального выравнивания используются следующие значения:

    1 - используется выравнивание по умолчанию,
    2 - выравнивание слева,
    3 - по центру,
    4 - справа.

    Граница ячеек
    MsExcel.Selection.Borders.LineStyle:=1;

    При значении 1 границы ячеек рисуются тонкими сплошными линиями.

    Кроме этого можно указать значения для свойства Borders, например, равное 3. Тогда установится только верхняя граница для блока выделения:
    MsExcel.Selection.Borders[3].LineStyle:=1;

    Значение свойства Borders задает различную комбинацию граней ячеек. В обоих случаях можно использовать значения в диапазоне от 1 до 10.

    Использование паролей в EXCEL

    Установка пароля для активной книги может быть произведена следующим образом:
    try
    // попытка установить пароль
    MsExcel.ActiveWorkbook.protect('pass');
    except
    // действия при неудачной попытке установить пароль
    end;

    где pass - устанавливаемый пароль на книгу.

    Снятие пароля с книги аналогично, используем команду
    MsExcel.ActiveWorkbook.Unprotect('pass');

    где pass - пароль, установленный для защиты книги.

    Установка и снятие пароля для активного листа книги Excel производится командами
    MsExcel.ActiveSheet.protect('pass'); // установка пароля
    MsExcel.ActiveSheet.Unprotect('pass'); // снятие пароля

    где pass - пароль, установленный для защиты книги.

    Вспомогательные операции в EXCEL

    Удаление строк со сдвигом вверх:
    MsExcel.Rows['5:15'].Select;
    MsExcel.Selection.;

    при выполнении данных действий будут удалены строки с 5 по 15.

    Установка закрепления области на активном листе Excel
    // снимаем закрепление области, если оно было задано
    MsExcel.ActiveWindow.FreezePanes:=False;
    // выделяем нужную ячейку, в данном случае D3
    MsExcel.Range['D3'].Select;
    // устанавливаем закрепление области
    MsExcel.ActiveWindow.FreezePanes:=True;

    Сохранение активной книги Excel
    // сохранить
    MsExcel.ActiveWorkbook.Save;

    // или сохранить как...
    MsExcel.ActiveWorkbook.SaveAs(Filename:='C:Documents and SettingsКнига2.xls');

    Удачной работы!

    Категория: Delphi | Добавил: Merlin (07.12.2009)
    Просмотров: 2200 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *: