ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Експорт в Excel
         

     

    Інформатика, програмування

    Експорт в Excel

    Кулюкін Олег

    Рано чи пізно практично кожен програміст стикається з необхідністю організувати експорт даних в MS Office. При цьому кожне "покоління" програмістів натикається на одні й ті самі вила.

    Ось три часто зустрічаються питання.

    1. Як визначити чи встановлений Excel

    2. Як визначити запущений чи Excel

    3. Як вивести дані в Excel

    Велику допомога в розумінні цих та інших питань приносить читання вихідних текстів функцій модуля ComObj. :)

    Під всіх випадках слід підключити модулі ComObj і ActiveX

    1. Як визначити чи встановлений Excel

    Функція повертає True якщо знайдено OLE-об'єкт

    Приклад використання

    if not IsOLEObjectInstalled ( 'Excel.Application') then ShowMessage ( 'Клас не зареєстрований') else ShowMessage ( 'Клас знайдено'); function IsOLEObjectInstalled (Name: String): boolean; var ClassID: TCLSID; Rez: HRESULT; begin// Шукаємо CLSID OLE-об'єкта Rez: = CLSIDFromProgID (PWideChar (WideString (Name)), ClassID); if Rez = S_OK then// Об'єкт знайдений Result: = true else Result: = false; end;

    Якщо потрібна більш детальна інформація про об'єкт, можна почитати хелп по функції API CLSIDFromProgID.

    2. Як визначити запущений чи Excel

    Даний приклад шукає активний екземпляр Excel і робить його видимим

    var ExcelApp: Variant; begin try// Шукаємо запущений екземплят Excel, якщо він не знайдений, викликається виняток ExcelApp: = GetActiveOleObject ( 'Excel.Application');// Робимо його видимим ExcelApp.Visible : = True; except end;

    3. Як вивести дані в Excel

    Можна виводити дані послідовно в кожну клітинку, але це очинь сильно сповільнює роботу. Краще сформувати варіантний масив, і виконати присвоєння області (Range) цього масиву.

    var

    ExcelApp, Workbook, Range, Cell1, Cell2, ArrayData: Variant;

    TemplateFile: String;

    BeginCol, BeginRow, i, j: integer;

    RowCount, ColCount: integer;

    begin

    // Координати лівого верхнього кута області, до якої будемо виводити дані

    BeginCol : = 1;

    BeginRow : = 5;

    // Розміри виведеного масиву даних

    RowCount: = 100;

    ColCount: = 50;

    // Створення Excel

    ExcelApp: = CreateOleObject ( 'Excel.Application');

    // Відключаємо Excel реакцію на події, щоб прискорити виведення інформації

    ExcelApp.Application.EnableEvents: = false;

    // Створюємо Книгу (Workbook)

    // Якщо заповнюємо шаблон, то Workbook: = ExcelApp.WorkBooks.Add ( 'C: MyTemplate.xls');

    Workbook : = ExcelApp.WorkBooks.Add;

    // Створюємо варіантний Масив, який заповнимо вихідними даними

    ArrayData: = VarArrayCreate ([1, RowCount, 1, ColCount], varVariant);

    // Заповнюємо масив

    for I: = 1 to RowCount do

    for J: = 1 to ColCount do

    ArrayData [I, J]: = J * 10 + I;

    // Ліва верхня осередок області, до якої будемо виводити дані

    Cell1: = WorkBook.WorkSheets [1]. Cells [BeginRow, BeginCol];

    // Права нижня осередок області, до якої будемо виводити дані

    Cell2: = WorkBook.WorkSheets [1]. Cells [BeginRow + RowCount - 1, BeginCol +

    ColCount - 1];

    // Область, в яку будемо виводити дані

    Range: = WorkBook.WorkSheets [1]. Range [Cell1, Cell2];

    // А ось і сам висновок даних

    // Набагато швидше поячеечного присвоєння

    Range.Value : = ArrayData;

    // Робимо Excel видимим

    ExcelApp.Visible: = true;

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://vlad2000.h1.ru/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status