Воскресенье, 19.11.2017, 12:34
Приветствую Вас, Гость | RSS
Реклама
Категории раздела
Статьи посвещенные работе с Excel с использованием Delphi 7 [2]
Работа с базами данных [2]
Прочее [1]
Разработки Воропай Андрея [3]
Публикация разработок автора: Воропай Андрей (waw) Разработка прикладного, системного ПО, БД, Delphi, SQL. Стаж работы 13 лет.
Фрактальная геометрия [3]
Фракталы (от лат. fractus - изломанный) Обладают двумя основными признаками - изломанностью и свойством самоподобия. В данной категории мы рассмотрим примеры программ на Delphi для создания фракталов.
Не программирование [0]
Реклама
личность и деятельность ивана болотникова
принципы кооперации труда
особенности стратегий для гостиницы
viagra 100mg cialis 5mg
cialis precio accutane
where to get green coffee
achater viagra en ligne
cialis canada  viagra  viagra prix  viagra   Подключил опцию Одноклассники онлайн  comprar viagra  cialis france  acheter viagra en ligne  viagra generique  prix du viagra  acheter viagra en ligne  Siamo qui per fornire tutto viagra sessualmente eccitato  prix du viagra  cialis generique  viagra pas cher  dysfonction erectile  viagra generico
Вход
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

К началу

Главная » Статьи » Статьи посвещенные работе с Excel с использованием Delphi 7

Работа с Excel из Delphi 7 начало
Для начала необходимо использовать следующие модули:

uses
  Variants, Registry,
 ComObj, Excel2000,
 ActiveX;


Теперь простенькая функция определения установлен ли соответствующий
объект в системе или нет. С её помощью можно искать Excel, Word и т.д...Для начала необходимо использовать следующие модули:

functionIsOLEObjectInstalled(Name:string):boolean;
var
ClassID:TCLSID;
Rez:HRESULT;
begin
// Ищем CLSID OLE-объекта
Rez:=CLSIDFromProgID(PWideChar(WideString(Name)),ClassID);
if Rez=S_OKthen
// Объект найден
Result:=true
else
Result:=false;
end;

Например:

 IsOLEObjectInstalled('Excel.Application.8')


Так мы можем определить установлены ли объекты соответствующей версии Excel или нет.

Теперь попробуем запустить Excel.
Определим переменные:

var
  cls_ExcelObject: string;
  WorkSheet: Variant;
  Excel: Variant;
  RegData: TRegistry;


Для того, что бы избавится от локальных названий класса для каждой верcии Office Excel необходимо выбрать ветку реестра с текущей весией, и если эта ветка существует сменить название.

 begin
    // Это для того, чтобы не применять локальные
// для каждой версии
    // названия "Excel.Application.8", "Excel.Application.9".
    // Ко всему прочему приведенный пример
    // не работает с Excel95.
    cls_ExcelObject := 'Excel.Application';
    RegData := TRegistry.Create;
    RegData.RootKey := HKEY_CLASSES_ROOT;
    try
      if RegData.OpenKey('\Excel.Application\CurVer', False) then
      begin
        cls_ExcelObject := regData.ReadString('');
        RegData.CloseKey;
      end
    finally
      regData.Free;
    end;


Определим установлен Excel на данный компьютер или нет.

    if not IsOLEObjectInstalled(cls_ExcelObject) then
    begin
      ShowMessage('Excel не установлен.');
      exit;
    end;

    // Вот теперь откроем Excel
    Excel := CreateOleObject(cls_ExcelObject);

Вот теперь самые интересные параметры работы с Excel. Мы отключает все события, интерактивную реакцию, в том числе и перерисовку, отображение в строке состояния, отображение границ листа и пересчет формул (если конечно не нужно пересчитывать формулы автоматически. А еще делаем процесс работы приложения невидимым.

  // Отключаем реакцию Excel на события,
    // чтобы ускорить обработку информации информации
    Excel.Application.ScreenUpdating := False
    Excel.Application.Calculation := xlCalculationManual;
    Excel.Application.EnableEvents := false;
    Excel.Application.Interactive := False;
    Excel.Application.DisplayAlerts := False;
    Excel.ActiveSheet.DisplayPageBreaks := False;
    Excel.Application.DisplayStatusBar := False;
    Excel.Visible := false;

А теперь создадим таблицу или откроем указанный файл:

    //  Создадим новую таблицу
   Excel.Workbooks.Add;
   // -------- или ---------
    //    Откроем существующую таблицу
    Excel.Workbooks.Open('FileName.xls');

Получим дополнительную информацию. Количество листов в книге, получим имена всех листов.

UsedRange - очень интересное свойство.
Через него можно узнать физическое количество заполненных ячеек
первую строку заполненного диапазона. Очень полезно для парсинга таблиц прайсов.
 // Количество значащих строк
 Rows := WorkSheet.UsedRange.Rows.Count;
// Количество значащих колонок
Columns := WorkSheet.UsedRange.Columns.Count;
// Первая строка диапазона
First := WorkSheet.UsedRange.Row;

В начале работы можно еще узнать, количество листов в книге, список названий листов. Дальше показан пример работы с определенным листом. Обращаться к книге или листу можно по номеру, а можно указывать название.
// Количество листов в таблице
    SheetsCount := Excel.Sheets.Count;
// Получим имена всех листов в первой открытой книге
    for i := 1 to SheetsCount do
    begin
      WorkSheetsNames.Items.Add(Excel.Workbooks[1].WorkSheets[i].Name);
    end;

// Выберем первый лист первой книги
    WorkSheet := Excel.Workbooks[1].WorkSheets[1];
    Rows := WorkSheet.UsedRange.Rows.Count;
 // Количество значащих строк
    Columns := WorkSheet.UsedRange.Columns.Count;
 // Количество значащих колонок
    // Первая строка диапазона
    FirstString := WorkSheet.UsedRange.Row;

Дальше уже можно работать с таблицей. Обработка и парсинг Excel книги мы рассмотрим в следующей статье.

Но перед завершением программы не забудем вернуть свойства Excel в исходное состояние. В примере сохраняю в другой файл и закрываю Excel без запроса на сохранение. Т.е. если были открыты другие файлы и в них были изменения не будет выдано запроса на сохранение измененных файлов.

 
Excel.Application.EnableEvents := true;
Excel.Application.Interactive := true;
Excel.Application.DisplayAlerts := true;
Excel.ActiveWorkbook.SaveCopyAs('FileName.xls');
Excel.ActiveWorkbook.Close(0); // xlDontSaveChanges
Excel.Quit;
Excel := Unassigned;

Дополнительные ссылки:
Особенности работы с «Русским» Excel'ем


Tech Daily - Щоденні новини технологій
Категория: Статьи посвещенные работе с Excel с использованием Delphi 7 | Добавил: waw (03.01.2011)
Просмотров: 15879 | Комментарии: 9 | Рейтинг: 4.2/6
Всего комментариев: 0
Имя *:
Email:
Код *:
Информация

Смотреть фильмы в хорошем качестве эротика мультфильмы ужасы фантастика боевики комедия приключения всё это можно скачать бесплатно с помощью торрента с фильмом или мультфильмом
Банковские услуги
Запорожье