Учимся работать с Excel файлами

Всем привет! Сегодня наш урок будет посвящен использованию Excel'я в Delphi. А именно я рассажу как вывести табличку из Excel'я в компонент DbGrid.

Итак начинаем.....

Таблица содержит 3 столбика: Имя, Фамилия, Должность. Обратите внимание что таблицу я создал на листе с Именем Лист1 (в дальнейшем нам это пригодиться). Так далее, я добавил в неё первую запись (Олег, Иванов, Менеджер). Всё начальные приготовления завершены, осталось только сохранить наш документ, я сохраню его на диске C:\ с именем 2.xls

Теперь открываем Delphi и кидаем на форму 4 компонента: ADOConnection, ADOQuery с закладки ADO, DataSource с закладки Data Access и DBGrid с закладки DataControls. Для того что-бы вывести документ Excel в компонент DbGrid нам нужно с начала подключиться к этому документу, для этих целей будем использовать компонент ADOConnection. Выделяем его и в свойстве ConnectionString пишем вот такой код

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\2.xls;Extended Properties=Excel 8.0;


В Свойстве LoginPromt и Connected установите значение false.

Далее у нас на очереди компонент DataSource, В Свойство DataSet поставте ADOQuery1.
А в компоненте ADOQuery свойство Connection установите на ADOConnection1.

Ну что со связями между компонентами вроде бы разобрались, теперь добавьте на форму 2 Компонента Edit и один компонент Button с закладки Standart. В первом Edit'e будет храниться путь до excel файла,
во втором edit'e мы будем писать SQL запрос, а при нажатии на кнопку программа будет подключаться к Excel файлу и выводить таблицу в компонент DbGrid.

Но для начала нам необходимо создать парочку процедур. Для этого в вверху, после ключевого слова private пишем:


procedure ConnectToExcel;  

И нажимаем комбинацию клавиш Ctrl+Shift+C

Delphi автоматически генерирует нам шаблончик для будущей процедуры.


procedure TForm1.ConnectToExcel;  
begin  
  
end;  
end; 

Посмотрите теперь как должна выглядеть эта процедура и допишите не достающие строки.


procedure TForm1.ConnectToExcel;  
var strConn: widestring;  
begin  
strConn:='Provider=Microsoft.Jet.OLEDB.4.0;' +  
'Data Source=' +Edit1.Text+ ';' +  
'Extended Properties=Excel 8.0;';  
AdoConnection1.Connected:=False;  
AdoConnection1.ConnectionString:=strConn;  
try  
AdoConnection1.Open;  
except  
ShowMessage('Не могу соединиться с Excel книгой, которая расположена по адресу: '+Edit1.Text+' !');  
raise;  
end;  
end;  

С помощью этой процедуры мы будем устанавливать соединение между Excel файлом и Нашей программой.

Далее создадим еще одну процедуру, которая будет выполнять SQL запрос и соответственно выводить табличку в компонент DBGrid. Делается это по аналогии, т.е. опять же после ключевого слова private пишем:


procedure FetchData;  

И нажимаем комбинацию клавиш Ctrl+Shift+C

Полный листинг процедуры:


procedure TForm1.FetchData;  
begin  
ConnectToExcel;  
AdoQuery1.Close;  
AdoQuery1.SQL.Text:=Edit2.Text;  
try  
AdoQuery1.Open;  
except  
ShowMessage( 'Не могу выполнить Sql запрос ' + Edit1.Text +'!');  
raise;  
end;  
end;  

Двигаемся дальше, создаем обработчик событий OnClick на кнопке.
Между begin ... end пишем имя второй функции: FetchData;

Все запускаем программу, в первом Edit'e прописываем полный путь до нашего excel документа (у меня это C:\2.xls), а во втором Edite пишем SQL запрос на выборку всех полей из таблицы Лист1:


SELECT * FROM [Лист1$]  

Жмем на кнопку.., ОПА табличка вывелась в компонент DBGRID
Теги:
Excel
Добавлено: 07 Августа 2018 21:41:31 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...