IDtExcelProvider.Query

Синтаксис Fore

Query: String;

Синтаксис Fore.NET

Query: String;

Описание

Свойство Query определяет запрос к листам файла Excel. С помощью данного запроса будут отбираться импортируемые данные.

Комментарии

В качестве значения свойства можно указать:

Примечание. При указании наименования листа не допускается использование символов «[»,«]» и «*».

Пример Fore

Для выполнения примера предполагается наличие в репозитории задачи ETL с идентификатором «ETL» и в корневом каталоге диска С файла Excel с наименованием «Data.xls».

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    EtlTask: IEtlTask;
    EtlProvider: IEtlPlainDataProvider;
    ExcelProvider: IDtExcelProvider;
    WxProvider: IWxRectangle;
    WxETLProvider: IWxETLObject;
Begin
    MB := MetabaseClass.Active;
    
//Поиск задачи ETL. Объект репозитория с идентификатором «ETL»
    MObj := MB.ItemById("Etl").Edit;
    EtlTask := MObj 
As IEtlTask;
    
//Начало создания источника
    //Создание объекта «Импорт из Excel»
    EtlProvider := EtlTask.Create(EtlObjectType.PlainDataExcelProvider) As IEtlPlainDataProvider;
    EtlProvider := EtlProvider.Edit;
    EtlProvider.Id := 
"Excel_Provider";
    EtlProvider.Name := 
"Импорт из Excel";
    EtlProvider.Description := 
"Импорт из Excel";
    
//Настройка источника данных
    ExcelProvider := EtlProvider.Provider As IDtExcelProvider;
    ExcelProvider.DriverVersion := 
"Excel 8.0";
    ExcelProvider.File := 
"c:\Data.xls";
    ExcelProvider.HasHeader := 
True;
    ExcelProvider.ImexMode := DtExcelImexMode.Import;
    ExcelProvider.Query := 
"Select * From [Лист1$]";
    EtlProvider.FillDefault;
    
//Сохраняем источник
    EtlProvider.Save;
    
//Конец создания источника
    //Начало создания визуального объекта
    WxProvider := EtlTask.Workspace.CreateRectangle;
    WxETLProvider := 
New WxETLObject.Create;
    WxETLProvider.ETLObject := EtlProvider;
    WxProvider.Style.TextPosition := WxTextPosition.Bottom;
    WxProvider.Style.PictureMarginTop := -
10;
    WxProvider.PinPosition := 
New GxPointF.Create(5050);
    WxProvider.Extension := WxETLProvider 
As IWxShapeExtension;
    
//Конец создания визуального объекта
    //Сохранение задачи Etl
    MObj.Save;
End Sub UserProc;

После выполнения примера в задаче ETL будет создан объект «Импорт из Excel». Этот источник будет импортировать все данные из файла Excel «Data.xls». Наименование листа - «Лист1». При подключении будут использоваться драйвера версии Excel 8.0. Из первой строки файла будут импортироваться наименования полей. Поля, содержащие данные разных типов, будут импортироваться полностью.

Пример Fore.NET

Для выполнения примера предполагается наличие в репозитории задачи ETL с идентификатором «ETL» и в корневом каталоге диска С файла Excel с наименованием «Data.xls».

Imports Prognoz.Platform.Interop.Dt;
Imports Prognoz.Platform.Interop.Etl;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Andy;
Imports Prognoz.Platform.Interop.Drawing;

Public Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    EtlTask: IEtlTask;
    EtlProvider: IEtlPlainDataProvider;
    ExcelProvider: IDtExcelProvider;
    WxProvider: IWxRectangle;
    WxETLProvider: WxETLObject = New WxETLObjectClass();
    PinPos: GxPointF = New GxPointFClass();
Begin
    MB := Params.Metabase;
    //Поиск задачи ETL. Объект репозитория с идентификатором "ETL"
    MObj := MB.ItemById["ETL"].Edit();
    EtlTask := MObj As IEtlTask;
    //Начало создания источника
    //Создание объекта "Импорт из Excel"
    EtlProvider := EtlTask.Create(EtlObjectType.eotPlainDataExcelProvider) As IEtlPlainDataProvider;
    EtlProvider := EtlProvider.Edit();
    EtlProvider.Id := "Excel_Provider1";
    EtlProvider.Name := "Импорт из Excel";
    EtlProvider.Description := "Импорт из Excel";
    //Настройка источника данных
    ExcelProvider := EtlProvider.Provider As IDtExcelProvider;
    ExcelProvider.DriverVersion := "Excel 8.0";
    ExcelProvider.File := "c:\Data.xls";
    ExcelProvider.HasHeader := True;
    ExcelProvider.ImexMode := DtExcelImexMode.eimImport;
    ExcelProvider.Query := "Select * From [Лист1$]";
    EtlProvider.FillDefault();
    //Сохраняем источник
    EtlProvider.Save();
    //Конец создания источника
    //Начало создания визуального объекта
    WxProvider := EtlTask.Workspace.CreateRectangle();
    WxETLProvider.EtlObject := EtlProvider;
    WxProvider.Style.TextPosition := WxTextPosition.wtpBottom;
    WxProvider.Style.PictureMarginTop := -10;
    PinPos.Create(5050);
    WxProvider.Extension := WxETLProvider As IWxShapeExtension;
    //Конец создания визуального объекта
    //Сохранение задачи Etl
    MObj.Save();
End Sub;

После выполнения примера в задаче ETL будет создан объект «Импорт из Excel». Этот источник будет импортировать все данные из файла Excel «Data.xls». Наименование листа - «Лист1». При подключении будут использоваться драйвера версии Excel 8.0. Из первой строки файла будут импортироваться наименования полей. Поля, содержащие данные разных типов, будут импортироваться полностью.

См. также:

IDtExcelProvider