Найти тему
Мастер Marx

Установка компонента ExportADOTable на Delphi 10.4

Embarcadero Delphi 10.4.1 Sydney Architect
Embarcadero Delphi 10.4.1 Sydney Architect

Рассмотрим компонент предназначенный для экспорта данных из TADOTable в форматы: Excel, Html, Paradox, Dbase, Txt.

Установка

1. Для начала скопируем скрипт исходника здесь. Используя Блокнот, изменим строку скрипта:
RegisterComponents('Carlo Pasolini' > RegisterComponents('dbGo'
и сохраним его в файл ExportADOTable.pas. В данном скрипте помимо кода Delphi используется код SQL.

2. Установим этот компонент с помощью меню 'File - New - Package-Delphi', создавая временный проект пакета, т.е. мы не будем его сохранять в дальнейшем. О том, как это сделать см. здесь.

3. Укажем путь к папке компонента: Tools-Options-Language-Delphi-Library > Library path > Обзор > Обзор:

C:\Users\username\Documents\Embarcadero\Studio\21.0\MyComponents\ ExportADOTable

4. В палитре компонентов появится новый компонент dbGo\TExportADOTable.

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

На форму добавим объект ExportADOTable1. Выполним его подключение в объектном инспекторе аналогично подключению TADOTable, например:

TableName - Справочник
Connection - ADOConnection1
Active - True

В коде программы для экспорта в файл Excel напишем, например:

procedure TForm1.ToolButton3Click(Sender: TObject);
var s: string;
begin
s:= 'Num, Фамилия, Имя, Телефон, email, Город';
ExportADOTable1.ExportToExcel(s,'Книга1.xls','Лист1','Excel 8.0');
end;

Если в имени поля есть дефис, например, e-mail то его нужно взять в квадратные скобки:

s:= 'Num, Фамилия, Имя, Телефон, [e-mail], Город';

Особенности

При программном копировании таблицы, ячейки, имеющие текстовый формат будут отмечены в начале апострофом ('). С числовым форматом будут переданы без изменений. Чтобы в Excel удалить эти отметки нужно сделать следующее:

1. В меню программы выбрать 'Файл-Параметры-Настроить ленту' и в списке 'Основные вкладки' выбрать 'Разработчик'.

2. Далее, главное меню 'Разработчик - Visual Basic' и в 'Книга1.xls - Module1' пишем следующий скрипт:

Sub Apostrophe_Remove()
For Each cell In Selection.Cells
If Not cell.HasFormula Then
v = cell.Value
cell.Clear
cell.Formula = v
End If
Next
End Sub

3. Выделим всю таблицу, в этой же вкладке меню выберем 'Макросы-Apostrophe_Remove-Выполнить'.

На этом все. Спасибо за внимание и до встречи в следующих статьях.