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

Вниз

Экспорт в Excel   Найти похожие ветки 

 
VadimSpb   (2006-04-08 20:30) [0]

Добрый день!
Вопрос ко всем, то использует Excel для создания отчета.
Необходимо экпортировать в Excel  данные о клиенте (типа квитанция на оплату). Создаю книгу и копирую страницы из шаблона:

procedure TForm1.Button1Click(Sender: TObject);
var
m_Excel : OleVariant;
i: integer;
begin
m_Excel := CreateOleObject ("Excel.Application");
m_Excel.Workbooks.Open(ExtractFileDir(Application.ExeName)  + "\Templates\1.xls");
m_Excel.Visible := true;
for i:=1 to 100000 do
m_Excel.Worksheets[i].Copy(After:=m_Excel.Worksheets[i]);
end;


В итоге, на 666 (!!!) странице получаю ошибку "Сбой при удаленном вызове процедуры".
Ладно, может где-то я не прав и делаю то же в VBA:

Sub Лист1()
For i = 1 To 100000 Step 1
Worksheets("Лист1").Copy After:=Worksheets("Лист1")
Next i
End Sub


Итог: Ошибка на 333 странице с предложением отправить отчет и извинениями за неудобства :-))

В качестве шаблона можно использовать просто пустую страницу.Кто сталкивался с подобной проблемой?


 
YurikGL ©   (2006-04-09 15:21) [1]

333 страницы? удивляюсь, что Excel до 333-х дошел...


 
VadimSpb   (2006-04-10 10:22) [2]

Ну почему же?
MSDN: "число страниц ограничено размером оперативной памяти".
Я немного изменил код: копирую страницу не внутри одной книги (что приводит к ошибке), а из одной книги в другую. Тогда все нормально работает.
Думаю, в первом варианте - это внутренняя ошибка Excel или так делать нельзя.
Результат: все работает, но с увеличением числа страниц время экспорта непропорционально увеличивается. Оно вообще неприемлемо для тысяч страниц. Наверно, придется заняться Rave Report :))
Причем позднее связывание работает быстрее раннего :-))))



Страницы: 1 вся ветка

Текущий архив: 2006.06.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.059 c
15-1147087612
Некто_
2006-05-08 15:26
2006.06.04
Аналог TryStrToDate в php


2-1147762028
ANB
2006-05-16 10:47
2006.06.04
Как отправить письмо с вложением без файла ?


15-1147153694
Мефисто
2006-05-09 09:48
2006.06.04
Искусство программирования на Ассемблере. 3-е изд. Как оно?


2-1148131942
roman_ln
2006-05-20 17:32
2006.06.04
как заполнить комб список с помощью цикла


2-1147874048
13
2006-05-17 17:54
2006.06.04
Снова График