Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Експорот в Ехcel [D6]


Страницы:   1 2

Relaxxx ©   (2003-09-05 14:52:00) 

Здраствуйте, мне нужно организовать експорт в Ексель, я тут хотел скачать XL Report 4.2 но я немогу найти нормальный, может кто ссылку даст, или подскажет как мне так сделать експорт, может какие-то другие компоненты???


Relaxxx   (2003-09-10 12:18:00) [1]


> Hawk2 © (10.09.03 00:01) [27]
ты пользуешся XLReport ??? не можеш дать ссылочку где его достать(нормальный, не триал версию) или может можеш намылить, буду очень признателен!!!


paa   (2003-09-10 08:27:00) [2]

используй PReport и не будет проблем! вот ссылка http://www.vtktools.ru/rus


Hawk2   (2003-09-10 00:01:00) [3]

Я удаляю экземпляр Екселя так:

Procedure CloseXLReport;
Begin
if Assigned(xlReport) then
begin
xlSheet:=nil; //Освобождаем листы
xlWorkbook:=nil; //Освобождаем книги
FreeAndNil(xlReport); //Убиваем сам Ексель
end;
End;


Relaxxx   (2003-09-09 17:53:00) [4]

Не знаю что я делаю не так, вот мой код:


ExcelApplication:=CreateOleObject ("Excel.Application");
ExcelApplication.WorkBooks.Open ("\\Multi\Amsora\forms\money\SCHETA.xls");

ExcelApplication.Range["D1", "D1"].value:="ЙЙЙ";

ExcelApplication.visible:=true;
FreeAndNil(ExcelApplication);


У меня ошибка в FreeAndNil(ExcelApplication);
может я как-то не так написал эту строку????


Hawk2   (2003-09-09 15:07:00) [5]

Relaxxx © (09.09.03 14:03) [24]
Скажите мастера а как мне уничтожить екземпдляр екселя, (это ж нужно делать когда пользователь закрывает ексель???) или когда?

Я делаю это после того как готов отчет. Когда ты уничтожаешь экземпляр, сама программа Excel не закрывается, ты можешь продолжать с нею работать, а проблемы с запуском другой копии исчезнут. Для освобождения (где-то вычитал) больше всего подходит FreeAndNil(Твой_экземпляр);


Relaxxx   (2003-09-09 14:03:00) [6]

Скажите мастера а как мне уничтожить екземпдляр екселя, (это ж нужно делать когда пользователь закрывает ексель???) или когда?


Deniz   (2003-09-09 08:22:00) [7]

> jack128 © (08.09.03 18:37) [22]
>Можно просто поставлять с твоей программой xls-файл в котором уже нарисованы соответствующие border"ы и использовать его, как шаблон.

В большинстве случаев неизвестно кол-во строк отчета на стадии формирования шаблона(тот же прайс). Можно только настроить форматы столбцов и шапку.
var XLApp, Sheet, Cell1, Cell2 : Variant;
...
XLApp:=CreateOleObject("Excel.Application");
try
Sheet:=XLApp.Workbooks[1].WorkSheets[1];
...
Cell1:=Sheet.Cells[5, 1]
Cell2:=Sheet.Cells[CurrYPos, CurrXPos];
Sheet.Range[Cell1, Cell2].Borders.LineStyle:=1;
finally
XLApp:=Unassigned;
end;


jack128   (2003-09-08 18:37:00) [8]


> а теепрь скажите как мне нарисовать быстро рамку я делаю
> в цыкле

Можно просто поставлять с твоей программой xls-файл в котором уже нарисованы соответствующие border"ы и использовать его, как шаблон

P.S. А на XL Report не гони! Отличнейшая вещь..


Hawk2   (2003-09-08 18:21:00) [9]

Ты не уничтожаешь экземпляр Екселя.


Relaxxx   (2003-09-08 16:38:00) [10]

Здраствуйте мастера!!
У меня проблема, я сделал в программе экпорт в эксель,но вот проблема после того как я делаю экспорт и если не закрываю прогу я немогу открыть любой другой документ эксель, Ексель запускается, а на месте ячеек прозрачное место. В чем проблема


Deniz   (2003-09-08 14:17:00) [11]


> Relaxxx © (05.09.03 18:29) [17]

Посмотри на RANGE


AbrosimovA   (2003-09-08 13:51:00) [12]

FlexCelReport и XLSAdapter из библиотеки FlexCel, которых достаточно для получения в Excel данных из любой базы.
Если нужны подробности, пиши на моё мыло - отвечу.


Relaxxx   (2003-09-05 18:29:00) [13]

Я это уже сделал, спасибо, стало действительно быстрее, а теепрь скажите как мне нарисовать быстро рамку я делаю в цыкле

for i1:=1 to 4 do
ExcelApplication.Cells[n2,1].Borders[i1].LineStyle:=1;

и так для каждой ячейки но это очень долго, как быстрее????


Е-Моё имя   (2003-09-05 18:24:00) [14]


> как мне усовершенствовать код

используй массив
присваивай .Range=VarArray


Relaxxx   (2003-09-05 17:59:00) [15]

Подскажите как мне усовершенствовать код (не очень быстро экспортирует) и как мне нарисовать потом сетку с толшиной 1??

Вот код:

ExcelApplication:=CreateOleObject ("Excel.Application");
ExcelApplication.WorkBooks.Open ("c:\OP.xls");

Query1.Active := true;
Query1.First;
for n:=1 to Query1.RecordCount do
begin
s:="";
for i:=0 to MasterTable.Columns.Count -1 do
begin
s:= MasterTable.Columns[i].Field.AsString;
r2:=i+2;
n2:=n+3;
ExcelApplication.Cells[n2,1].value:=IntToStr(n);
ExcelApplication.Cells[n2,r2].value:=s;
end;
Query1.Next;
end;
ExcelApplication.visible:=true;
ExcelApplication.ActiveWindow.DisplayGridlines:=True;


MsGuns   (2003-09-05 16:52:00) [16]

>Vlad © (05.09.03 16:47) [12]

Спасибо веримач


Vlad   (2003-09-05 16:51:00) [17]

Млин, пробел влез случайно :)


Vlad   (2003-09-05 16:47:00) [18]

>MsGuns © (05.09.03 16:44) [11]
Сюда ты не дошел видимо

http://www.delphiworld.narod.ru/base/delphi_and_excel_ole_automation.html


MsGuns   (2003-09-05 16:44:00) [19]

>Bob © (05.09.03 15:41) [7]
> http://www.delphiworld.narod.ru/- тут ты найдешь много интересного

Пошел. Посмотрел. Не увидел. Ни фига. Ни слова об экселе, хотя библиотека статей в целом весьма любопытная.
Набрал в прилагаемом Поиске "Excel" - вынырул в яндексе с четырехзначным кол-вом ссылок.

Где я неправ ?


HSolo   (2003-09-05 16:41:00) [20]

Присоединяюсь к Bob © (05.09.03 15:41) [7]
Посмотрите еще это:
http://delphi.vitpc.com/helloworld/excel.htm


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо