Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2011, 15:52   #1
sergey113
Форумчанин
 
Регистрация: 12.12.2007
Сообщений: 104
По умолчанию Вывод данных в excel - массивом данных

Делаю так..
Код:
ADOQuery4.Active:=false;
ADOQuery4.SQL.Clear;
s1:='SELECT tMain.Tab, tMain.Fam, tMain.Imya, tMain.Otch, tMain.Podr, tMain.Otd, tMain.dol, tMain.Resurs, tMain.Profile, 
tMain.Ur, tMain.Regim1, tMain.Regim2, tMain.Regim3, tMain.Regim4, tMain.Regim5 ';
s2:='FROM tMain Where tMain.Resurs="';
s3:=ComboBox1.text+'"';
ADOQuery4.SQL.Add(s1+s2+s3);
ADOQuery4.Active:=true;
Ap := CreateOleObject('Excel.Application');
Ap.Application.EnableEvents := false;
Ap.Workbooks.Open(ExtractFilePath(ParamStr(0))+'xlt\otchet.xlt');
Ap.Cells[7,1].Value := DateToStr(DateTimePicker1.DateTime)+' г.';
DataSource9.DataSet.First;
k:=0;
For i:= 0 to DataSource9.DataSet.RecordCount-1 do
begin
k:=k+1;
printt := VarArrayCreate([i+1, DataSource9.DataSet.RecordCount, 1, 12], varVariant);
printt[i+1,1] := IntToStr(i+1);
printt[i+1,2] := DataSource9.DataSet.FieldByName('Tab').asString;
printt[i+1,3]:= DataSource9.DataSet.FieldByName('Fam').asString+' 
'+DataSource9.DataSet.FieldByName('Imya').asString+' 
'+DataSource9.DataSet.FieldByName('Otch').asString;
printt[i+1,4]:= DataSource9.DataSet.FieldByName('Otd').asString;
printt[i+1,5]:= DataSource9.DataSet.FieldByName('Dol').asString;
//printt(5):= DataSource9.DataSet.FieldByName('Resurs').asString;
printt[i+1,6] := DataSource9.DataSet.FieldByName('Profile').asString;
printt[i+1,7] := DataSource9.DataSet.FieldByName('Ur').asString;
printt[i+1,8] := DataSource9.DataSet.FieldByName('Regim1').asString;
printt[i+1,9] := DataSource9.DataSet.FieldByName('Regim2').asString;
printt[i+1,10]:= DataSource9.DataSet.FieldByName('Regim3').asString;
printt[i+1,11]:= DataSource9.DataSet.FieldByName('Regim4').asString;
printt[i+1,12] := DataSource9.DataSet.FieldByName('Regim5').asString;
Ap.range[Ap.Cells[i+16,1],Ap.Cells[DataSource9.DataSet.RecordCount,12]]  ;
Ap.Range.Value := printt;
end;
по примеру как написано тут
http://programmersforum.ru/newreply....ote=1&p=387568

выдает ошибку неверное число параметров.

на последней строке присвоения...
Я уже прыгал по всякому, но у меня не получается... подскажите пожалуйста. Что я не так написал?

Последний раз редактировалось sergey113; 22.08.2011 в 15:54.
sergey113 вне форума Ответить с цитированием
Старый 22.08.2011, 16:00   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Ap.Range[...].Value := ...;
mss вне форума Ответить с цитированием
Старый 22.08.2011, 16:55   #3
sergey113
Форумчанин
 
Регистрация: 12.12.2007
Сообщений: 104
По умолчанию

Цитата:
Сообщение от mss Посмотреть сообщение
Ap.Range[...].Value := ...;
Большое спасибо !
сам бы не додумался
sergey113 вне форума Ответить с цитированием
Старый 22.08.2011, 17:09   #4
sergey113
Форумчанин
 
Регистрация: 12.12.2007
Сообщений: 104
По умолчанию

не могу также понять еще один момент. Если недоступен сетевой принтер,то этот код выполняется быстро за секунд 5. А если доступен, то за минут 5. Грузится процессор под 100 процентов. Отъедают spoolsv.exe и excel ... Это нормально ?
Можно как-то уравнять скорости....
sergey113 вне форума Ответить с цитированием
Старый 22.08.2011, 17:16   #5
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Для начала вынеси то до чего ты не додумался за пределы цикла по записям дейтасета.
mss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать вывод данных после всего ввода данных. Donatello Общие вопросы C/C++ 6 16.01.2011 16:32
вывод данных в Excel vilena Компоненты Delphi 3 01.06.2010 16:51
База данных с возможностью приема данных из файлов Excel Al_Sha БД в Delphi 6 16.10.2009 15:34
Формула или макрос для работы с массивом данных dondavis Microsoft Office Excel 3 21.09.2009 05:14
Вывод данных в Excel Novi4ek Помощь студентам 3 22.05.2008 11:32