это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
Ознакомительный фрагмент работы:
Кулюкин Олег
Рано или поздно практически каждый программист сталкивается с необходимостью организовать экспорт данных в 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;
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Презентация и короткое выступление к этой презентации
Презентация, Исследовательская работа моделирование и сравнение характеристик каналов райса
Срок сдачи к 21 сент.
Отчет по практике, технологическая (проектно-технологическая) практика | п. в | производственная практика/менеджмент управление проектами
Отчет по практике, Управление проектами
Срок сдачи к 14 сент.
отчет по практике/кадровый менеджмент/управление персоналом
Отчет по практике, кадровый менеджмент
Срок сдачи к 15 сент.
"Универсальное СТО легковых автомобилей для района с населением 42000 жителей с разработкой агрегатного участка."
ВКР, Автомобили и Автомобильный сервис
Срок сдачи к 11 янв.
Решить 1 лабораторную работу и 2 практические работы
Лабораторная, Особености разработки газонефтяных и нефтегазовых месторождений
Срок сдачи к 13 сент.
Выполнить задание в файле ecxel
Лабораторная, Формирование единой информационной среды предприятия на основе концепции «Качество 4.0»
Срок сдачи к 13 сент.
Тема выпускной квалификационной работы «Индивидуальный имидж как...
ВКР, Организационная психология
Срок сдачи к 31 окт.
Наступление танкового батальона по овладению населённого пункта
Реферат, Тактика
Срок сдачи к 11 сент.
Технология обучения учащихся основной школы устно-речевому иноязычному общению в условиях коллективно-группового взаимодействия
ВКР, Методика преподавания иностранных языков
Срок сдачи к 12 мар.
Написать курсовую работу
Курсовая, Курсовая работа. теоретические и прикладные аспекты методической работы учителя начальных классов
Срок сдачи к 15 сент.
Заполните форму и узнайте цену на индивидуальную работу!