Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Работа с Excel


Автор: TYRARGO 23.6.2006, 05:51
Уважаемый Albinos_x!
Пытаюсь работать через OLE... Проблема состоит в том, что обьем данных, которые импортируются из источника в Excel всё время варьируется и воспользоваться статичным шаблоном не представляется возможным. Т.е. надо "добавлять" под них новые строки...smile Почему "добавлять" в кавычках - мне, собственно, нужно только рисовать очередные границы (табличную сетку) с новой строки... Вот, собственно и всё...
Как реализовать подобное без использования сторонних компонентов и компонента ExcelApplication?

Большая просьба помочь начинающему программисту...smile

С уважением, TYRARGO
 

Автор: YurikGL 23.6.2006, 21:11
Я, конечно, не Albinos_x, но....
Я так понял, что есть некая таблица с сеткой, у которой заранее неизвестное число строк. При этом после таблицы тоже есть некие данные, которые желательно держать в шаблоне... Если это так, то:
Создаем шаблон. В нем имеем таблицу с 2-мя строчками со всеми границами. При экспорте втыкаем между этими строчками нужное число строчек. При этом все границы сохранятся.
После этого заполняем таблицу через вариантный массив.
 
Макрос выглядит примерно так:
Код

    Rows("5:5").Select
    Selection.Insert Shift:=xlDown

Или так
   Range("B4").Select
 
Код

   Selection.EntireRow.Insert
 

Автор: TYRARGO 26.6.2006, 06:09
Код должен выглядеть так?

Код

var excel,workbook,worksheet,font:variant;
FIELD_VAL:String;
z:integer;

begin
excel:=createoleobject('Excel.application');
workbook:=excel.workbooks.add('c:\proba.xls');
excel.worksheets[1].select;
excel.cells.Range("B4").Select
{добавим пару строк}
for z:=1 to 3 do
begin
excel.Selection.EntireRow.Insert;
end;
Excel.visible:=true;
end;


Делфя ругается на "Range"... Говорит, что не знает его...   

Автор: TYRARGO 26.6.2006, 06:36
Извиняюсь, сам нашел ошибку...smile
обьявил-таки Range, как variant...

Большое спасибо за подсказку, выручил, брат!smile 

Автор: TYRARGO 26.6.2006, 10:35
Еще один маленький вопрос!smile
При занесении данных в Excel не сохраняются свойства ячеек, которые указаны в шаблоне... 
Как установить "перенос по словам"?
И вообще, где можно прочитать про все эти свойства? 


M
Girder
Одна тема - Один вопрос!
 

Автор: _hunter 26.6.2006, 11:07
в справке VB.
вообще проще записать макрос и посмотреть на его код... 

Автор: Albinos_x 27.6.2006, 16:24
Цитата(TYRARGO @  26.6.2006,  10:35 Найти цитируемый пост)
Еще один маленький вопрос!
При занесении данных в Excel не сохраняются свойства ячеек, которые указаны в шаблоне... 
Как установить "перенос по словам"?
И вообще, где можно прочитать про все эти свойства? 

по аналогии как написано в моей статье:
Код
...
ExcelApp.Range['A1','D1'].WrapText:=true;
...
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)