![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Експорот в Ехcel [D6]
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