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

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

Экспорт из проги в MS Excel


Office-man ©   (2013-09-19 23:43:00) 

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


Office-man   (2013-09-22 09:04:00) [1]

Спасибо большое!


NoUser   (2013-09-22 03:41:00) [2]

> можно задать формулы для ячеек таблицы

V := VarArrayCreate([0,L,0,L],varVariant);
for i := 0 to L do
  for j := 0 to L do  begin
    V[i,j]:='=R[-1]+R[-2]';
    V[i,j]:='=R[-1]+R[-2]';    
  end;
for i := 2 to L do begin
  V[0,i]:='=C[-1]+C[-2]';
  V[1,i]:='=C[-1]+C[-2]';    
end;  
V[0,0]:=1;
V[0,1]:=1;
V[1,0]:=1;
V[1,1]:=2;  

//Sh.Range['A1:K11'].FormulaLocal:=V;
Sh.Range[Sh.Cells[1,1],Sh.Cells[L+1,L+1]].FormulaLocal:=V;

VarClear(V);


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

Sh.Range[Sh.Cells[3,3],Sh.Cells[3+L-1,3]].EntireRow.Insert(xlShiftUp,EmptyParam);
Sh.Range[Sh.Cells[3,3],Sh.Cells[3,3+L-1]].EntireColumn.Insert(xlShiftToLeft,EmptyParam);  


robt5   (2013-09-21 21:52:00) [3]


> Office-man   (21.09.13 00:21) [7]

*.csv


Office-man   (2013-09-21 00:28:00) [4]

Все-таки решил сделать "на лету" с рисованием. Благодаря примеру получилось! СПАСИБО Влад! :-) А как можно задать формулы для ячеек таблицы в самой программе? Небольшой пример пожалуйста если можно...


Office-man   (2013-09-21 00:21:00) [5]

>robt5 О чем идет речь?


robt5   (2013-09-20 22:32:00) [6]

а про "точку с запятой" чо забыли?


[ВладОшин]   (2013-09-20 22:18:00) [7]

поищи по форуму, кто-то выкладывал свой класс Excell с xml
к сожалению, мне не подошла, т.к. экселей много у нас всяких, а оле везде одинаково работает


Office-man   (2013-09-20 21:14:00) [8]

Эксель в Офис 2010 не дает почему то в ХМЛ сохранять, говорит не хватает ХМЛ-сопоставлений :( С чем их едят? :)


Вася   (2013-09-20 12:18:00) [9]

Можно без OLE - сохранить в формате xls(xml) - создай образец нужного тебе документа в экселе, сохрани как таблицу xml, потом открываешь в блокноте и смотришь что куда и как пишется. дальше в своей проге создавай текстовый документ, туда пишешь все что нужно, переименовываешm в xls.


Office-man   (2013-09-20 08:38:00) [10]

Спасибо большое! Сегодня попробую... :-)


[ВладОшин]   (2013-09-20 00:22:00) [11]

Чертить так
uses ComObj;
procedure TForm1.btn1Click(Sender: TObject);
var
 E, W, S: Variant;
 C1, C2, R: Variant;
begin
 E := CreateOleObject('Excel.Application');
 W := E.WorkBooks.Add;
 S := W.WorkSheets[1];
 C1 := S.Cells[2, 2];
 C2 := S.Cells[3, 2];
 R := S.Range[C1, C2];
 R.Borders[3].LineStyle := 1;
 E.visible := True;
end;

Константы тут
http://technet.microsoft.com/en-us/library/ee692886.aspx


Наверх

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