Delphi Уроки: Учимся работать с Excel файлами.
Всем привет! Сегодня наш урок будет посвящен использованию Excel'я в Delphi. А именно я рассажу как вывести табличку из Excel'я в компонент DbGrid.
Итак начинаем.....
Для начала откроем Excel и создадим простенькую табличку (см.рис 1)
Как видно из рисунка таблица содержит 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
До встречи DelphiExpert.ru !!!
Похожие материалы
Последние из рубрики
- Delphi Видеоурок - учимся делить изображение на кусочки
- Delphi уроки: Делаем многострочный Caption у Button
- Видео обзор - компилятора CodeGear 2009