Кулюкин Олег
Рано или поздно практически каждый программист сталкивается с необходимостью организовать экспорт данных в 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;
Другие работы по теме:
Расчет семейного бюджета на полугодие
ИНСТИТУТ РЕКЛАМЫ, ТУРИЗМА И ШОУ-БИЗНЕСА ПРАКТИЧЕСКАЯ РАБОТА По курсу: «Информатика». На тему: Расчет семейного бюджета на полугодие. Выполнила: студентка 3-го курса
Импорт таблиц EXCEL в текстовый документ WORD
Вопрос 12. Импорт таблиц EXCEL в текстовый документ WORD. Microsoft Excel – мощная программа для работы с электронными таблицами, являющаяся, также как и Word, частью пакета Microsoft Office. Обладая достаточно широкими возможностями и высокой степенью интеграции с другими приложениями Office и Windows вообще, Excel стала наиболее популярной программой среди людей, постоянно имеющих дело с огромными массивами чисел.
Вычисление значения функции y(x)
Особенности применения компьютерных программ Pascal, Excel, MathCAD и Delphi для вычисления значения функции y(x) с заданным промежутком и шагом. Виды результатов вычислений, их сравнение и вывод. Изображение блок-схемы алгоритма решения задания.
Электронные таблицы Excel
Overview Диаграмма1 Диаграмма3 Диаграмма2 Лист1 Sheet 1: Диаграмма1 Sheet 2: Диаграмма3 Sheet 3: Диаграмма2 Sheet 4: Лист1 остатки денежных средств на счетах клиентов
Экзаменационные билеты по Информатика
Первые вопросы: Устройство и архитектура компьютера. Виды информации: текст, звук. Виды информации: графика, анимация, видео. Единицы измерения информации. Системы исчисления.
Microsoft Exel
ВОПРОСЫ К ЭКЗАМЕНУ ПО ИНФОРМАТИКЕ 2 семестр Табличные процессоры. Классификация. Табличный процессор Excel. Назначение. Основные приемы работы в Excel: ведение рабочей книги.
Регрессионные зависимости
Вычисление значений регрессионно-авторегрессионной зависимости заданного выражения линейного программирования. Графическое представление математической модели в виде уравнения регрессии. Принципи оптимизации производственных и коммерческих операций.
Створення та робота з таблицями у Microsoft Excel, Access
Характеристика методів створення таблиць і роботи з ними у програмі Microsoft Excel: розробка таблиці з прізвищами співробітників, розміщених у алфавітному порядку та сумами отримуваних ними заробітних плат. Створення таблиці в програмі Microsoft Access.
Создание презентации, формирование массива
Подготовка презентации по теме "Excel – фильтрация данных". Сличительная ведомость по материальным ценностям, форма разработки документа. Построение сводной таблицы расчета суммарного и среднего значений поля. Характеристика формирования массива.
Отчётность в Excel
Наша задача создать отчётность в Excel. Эта потребность может возникнуть у каждого программиста баз данных, ведь Office установлен в нашей стране практически на каждом компьютере.
Анализ области определения функции
Постановка задачи Анализ области определения функции Рабочий лист Excel в режиме отображения значений Рабочий лист Excel в режиме отображения формул
Назначение и основные понятия электронных таблиц
Назначение электронных таблиц Microsoft Excel — один из наиболее популярных пакетов для среды Windows , принадлежащий к классу так называемых табличных процессоров, или электронных таблиц. Но
Создание макросов
Запись макроса При записи макроса все необходимые действия записываются программой записи макроса. Перемещение по ленте не включается в записанные шаги.
GUIA DE EXAMEN PARCIAL DE EXCEL 97
Essay, Research Paper 1. Que es una hoja de calculo?Es una ayuda para el ser humano para poder hacer c?lculos diversos eintroducir formulas. 2. Que nombre recibe el cursor de una hoja de calculo?Celda activa.
Information Methods Essay Research Paper The aim
Information Methods Essay, Research Paper The aim of this assignment was to show and explain the value and importance of information and the tools readily accessible to us as students. We were to investigate the individual components of Access, Excel, Word and Powerpoint, then to transform, manipulate and present the information we gathered.
What Sports Mean To Me Essay Research
Paper Being a cheerleader in the summer of my sophomore year gave me a new perspective about people and the stereotypes we put on them. Before I started cheering, I always categorized
Maya Angelou 3 Essay Research Paper The
Maya Angelou 3 Essay, Research Paper The readings from “Graduation Day” by: Maya Angelou and “On Becoming A Chicano” by: Richard Rodriguez were different but they the same point across. They were of different cultures, race, and time era, and they both overcame adversity to excel in their schooling.
Education And Society Essay Research Paper EducationEducation
Education And Society Essay, Research Paper Education Education is one of the most important tools that a society possesses. The right implementation of this tool is one of the greatest ways of assuring the quality of life within a society. The ability to better ourselves, is one of the strongest inherit abilities of the human race.
My Personal Art Collection Essay Research Paper
Brandon Hill My Personal Art Collection Enclosed in my portfolio are some of my favorite and most detailed works. I chose these eight pieces, because I feel that they are the best representation of my abilities in art. Because drawing is the area in which I excel most, I have selected mostly works that display my skill in this.
Streaming Of Students Essay Research Paper Students
Streaming Of Students Essay, Research Paper Students in high schools have different IQ levels, some are smart, some are average and some are weak. In a mixed group of students, the teacher has to teach in a manner which everybody is capable of understanding. Unfortunately, some students are left in the dark.
Using Macros To Get The Most Out
Of Excel Essay, Research Paper As accounting professionals, accuracy in financial calculations and the integrity of the raw data are vital to producing useful information. Our clients prevail upon us to be more accurate and more thorough in less time. The tremendous advances in information technology are apparent across most industries.
Love Poems Essay Research Paper All That
Love Poems Essay, Research Paper All That You Are by Steven Duke Poem No. 41993 Everything that you are, Makes me wonder how it’s true, That I?ve found everything I have,
Microsot Word 2000 Essay Research Paper Name
Microsot Word 2000 Essay, Research Paper Name and Type: -Microsot Word 2000 -Word Processor Producer/Maker: -Microsoft Corporation -The creator of the popular Windows operating system founded by Bill Gates.
Особенности банковского учета с применением Excel
Общие рекомендации по выполнению задач финансовой математики с использованием финансовых функций Microsoft Office Excel. Методика вычисления обыкновенных процентов по ссуде и эффективной ставки процента банка. Порядок определения дисконта от векселя.
Табличний редактор Microsoft Excel
Теоретичні відомості 1.1. Табличний редактор Microsoft Excel Microsoft Excel – це складова частина пакето-прикладних програм Microsoft Office. Microsoft Excel – призначений для створення електронних таблиць і найбільшою перевагою є можливість досліджувати, аналізувати дані і виконувати обчислення.