Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.20;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
14-62734
Fenik
2002-12-29 17:49
2003.01.20
гады-программисты


14-62793
ПИТОН
2002-12-31 06:56
2003.01.20
Новый Год


3-62365
alxx
2002-12-24 16:58
2003.01.20
Чтобы зарегистрировать базу в IBConsole


14-62851
_vitek_
2003-01-03 16:28
2003.01.20
FTP


4-62929
alvin
2002-12-03 09:51
2003.01.20
WM_HOTKEY





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский