Форум: "Основная";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];
ВнизDelphi и Excel Найти похожие ветки
← →
Link (2003-01-09 10:27) [0]Друзья!
Мне нужно сделать программку для фирмы. Я слышал, что в Delphi можно сделать приложение, обрабатывающее данные в таблице Excel. Нужно, чтобы через приложение можно было рассматривать каждую запись отдельно, редактировать её содержание, при этом в таблице производился перерасчёт. Слышал, что это делается с помощью OLE или COM, но никогда с этим не сталкивался.
Подскажите, пожалуйста, как это можно реализовать.
← →
Спрашивающий (2003-01-09 10:44) [1]uses ComObj
Пример:
-----------------------
var
Excel: Variant;
I,J : Integer;//строка/столбец
begin
try
Excel := CreateOleObject("Excel.Application");
except
MessageDlg("Невозможно запустить Microsoft Excel.", mtError, [mbOK], 0);
Exit;
end;
Excel.WorkBooks.Add;//добавление книги
Excel.WorkBooks[1].WorkSheets[1].Cells[I,J].Select;//выделить ячейку
Excel.WorkBooks[1].ActiveSheet.Paste;//вставить данные в ячейку
Excel.WorkBooks[1].WorkSheets[1].Columns.AutoFit;//выравнить по ширине данных
Excel.WorkBooks[1].WorkSheets[1].Columns.HorizontalAlignment:=2;//по моему выравнить по левому краю
Excel.Application.Visible:=True;//показываем Excel
и так далее ориентируйся как это делают макросы в самом Excel
но не всегда получается!!Писал быстро может где я и ошибся. Вобще об этом инфы много в инете но я по настоящему хорошей не встречал. Экспериментируй.
← →
passm (2003-01-09 10:52) [2]Link (09.01.03 10:27)> Так сразу все не напишешь...
Почитай Чарльз Калверт. Базы данных в Delphi 4. Руководство разработчика.
Описываются основы COM/DCOM и есть раздел посвященный автоматизации Word & Excel.
← →
Picco (2003-01-09 11:10) [3]Дай мыло куда прислать, у меня есть пару хороших книжных примеров
← →
Link (2003-01-09 11:31) [4]
> Спрашивающий
Спасибо за информацию. Но я имел ввиду, что в приложении должны быть Edit или что-нибудь в этом роде, в которых отображалась бы какая-либо ячейка. И вот, редактируя в них информацию, данные бы менялись в таблице. То есть, нужно связать Edit и ячейку в таблице. Это возможно?
← →
Link (2003-01-09 11:41) [5]
> Picco
linkovsk@rambler.ru
← →
passm (2003-01-09 11:57) [6]Link (09.01.03 11:31)> Возможно.
← →
Link (2003-01-09 11:59) [7]
> passm
Не сомневаюсь, что ты об этом что-то знаешь. Будь другом, поделись.
← →
Groove (2003-01-09 12:06) [8]2Picco
Groove_SQL@rambler.ru
и мне, плиз...
← →
passm (2003-01-09 12:19) [9]Link (09.01.03 11:59)> Это достаточно объемно...
Вот пример:
procedure TForm1.AnyEvent(Sender: TObject);
begin
XL:= CreateOLEObject("Excel.Application");
XL.Visible:= True;
XL.WorkBooks.Add(xlWBatWorkSheet);
XL.WorkBooks[1].WorkSheets[1].Name:= "From Delhi";
Self.DataToExcel
end;
procedure TForm1.DataToExcel;
var
i: Integer;
Sheet: Variant;
begin
Sheet:= XL.WorkBooks[1].WorkSheets[1];
for i:= 1 to 5 do
Sheet.Cells[i, 1]:= i;
Sheet.Cells[i, 1]:= "Sum(A1:A5)"
end;
Для импорта констант (xlWBatWorkSheet в частности) воспользуйся:
Import Type Library и найди Microsoft Excel...
← →
passm (2003-01-09 12:24) [10]Но это работа через переменную типа вариант.
Есть еще один метод, который работает быстрее - работа с интерфейсами непосредственно. После импорта библиотеки типов создаешь переменную типа импортированного интерфейса... Это лучше пробовать на практике :)
← →
Link (2003-01-09 12:33) [11]Picco , спасибо за примеры.
> passm
Спасибо, буду пробовать
;))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c