Вторник, 21.11.2017, 09:19
Приветствую Вас Гость | RSS

DELPHI Report

Каталог статей Delphi Report

Главная » Статьи » MS Office (MS Word, MS Excel ) » MS Excel

Доступ и управление данными MS Excel через ADO и Delphi

Получить доступ, отображение и редактирование данных Excel возможно так же при помощи технологии ADO (ADO ActiveX Data Object) и Delphi.

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

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

Итак, необходимо решить следующие задачи:

·         получить методы передачи данных между Excel<-> Delphi при помощи ADO;

·         редактирование страницы Excel;

·         получение данных из Excel. Как связать таблицу данных с WorkBook Excel;

·         определение типов полей (колонок) в Excel странице;

·         передача данных из Delphi приложения в Excel.

 

Подключение к MS Excel

 

При работе с Excel через ADO происходит обмен данных по аналогии с таблицей из базы данных. Для подключения необходимо использовать компонент AdoConnection и свойство connection string. Строка подключения в данном свойстве зависит от версии Excel, формата данных и для формата .xls будет выглядеть следующим образом:

  strConn:='Provider=Microsoft.Jet.OLEDB.4.0;' +  'Data Source=' +'MyFile.xls '+ ';' + 'Extended Properties=Excel 8.0;';

 

Процедуру подключения к выбранному файлу можно реализовать следующим образом:

procedure TForm1.ConnectToExcel;

var strConn :  widestring;

begin

  strConn:='Provider=Microsoft.Jet.OLEDB.4.0;' +

           'Data Source=' + FileListBox1.FileName + ';' +

           'Extended Properties=Excel 8.0;';

 

  AdoConnection1.Connected:=False;

  AdoConnection1.ConnectionString:=strConn;

    try

    AdoConnection1.Open;

    AdoConnection1.GetTableNames(ComboBox1.Items,True);

  except

    ShowMessage('Не получается подключиться к файлу ' + FileListBox1.FileName);

    raise;

  end;

end;(*ConnectToExcel*)

 

При этом имена страниц книги помещаются в компонент Combobox1.

Управление данными

 

Выборка данных происходит на основе SQL запроса:

 

SELECT * FROM [Sheet1]

 

Sheet1 – имя страницы для выборки.

 

Проверка подключения к таблице с данными и выборку можно произвести при помощи TadoQuery

 

  if not AdoConnection1.Connected then ConnectToExcel;

 

  AdoQuery1.Close;

  AdoQuery1.SQL.Text:=Edit1.Text;

  try

    AdoQuery1.Open;

  except

    ShowMessage('Ошибка!');

    raise;

  end;

 

При этом доступ к данным для чтения и записи будет осуществляться стандартным образом. В следующем программном коде сначала выбирается первая запись, затем значение второго по счету поля заносится в Edit3, после чего происходит редактирование полученного значения с записью в файл Excel. Имя поля при этом содержится в первой строке таблицы.

 

ADOQuery1.First;

Edit2.Text:=ADOQuery1.FieldByName(ADOQuery1.Fields[1].FieldName).AsString;

ADOQuery1.Edit;

ADOQuery1.FieldByName(ADOQuery1.Fields[1].FieldName).AsString:=Edit2.Text+'!';

ADOQuery1.Post;

 

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

Категория: MS Excel | Добавил: delphi (10.10.2012)
Просмотров: 7077 | Рейтинг: 5.0/2
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Меню сайта
Google
Форма входа
Категории раздела
MS Excel [22]MS Word [18]
Поиск
Друзья сайта
Статистика
Copyright MyCorp © 2017