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

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

Excel из Delhpi


Егоров А.Н. ©   (2007-05-02 16:28:00) 

Как можно вставить N строк на листе Excel перед какой-то строкой (например 26) из Delhpi.
Пробовал:
W_Schet.Range['A26','L'+IntToStr(26+N)].Insert;
где W_Schet: ExcelWorksheet

на F9 выдает ошибку после Insert; Not enough actual parametrs,
а какие нужно написать параметры в Insert(_,_) нигде не нашел.

Помогите, кто знает.


  (2007-07-25 23:38:00) [1]

Удалено модератором


  (2007-06-23 01:55:00) [2]

Удалено модератором


Егоров А.Н.   (2007-05-04 08:08:00) [3]

Да OfficeXP.


YurikGL   (2007-05-03 21:16:00) [4]


> Справился с Insert(xlDown).
> Надо было написать:
>

Зависит от того что прописано в uses. У меня Word2000. У тебя, скорее всего WordXP


Егоров А.Н.   (2007-05-03 12:04:00) [5]

Справился с Insert(xlDown).
Надо было написать:

WS_SFACT.Range['A26','A26'].EntireRow.Insert(xlDown,EmptyParam);

вместо
WS_SFACT.Range['A26','L26'].Insert(xlDown);


umbra   (2007-05-03 12:02:00) [6]

2 Егоров А.Н.   (03.05.07 11:10) [5]


> Здесь пишет ошибку [Not enough actual parametrs].

тка дайте ему два параметра. Если один из параметров Вам не важен, пишите вместо него EmptyParam


Егоров А.Н.   (2007-05-03 11:10:00) [7]

Нет не срабатывает Insert(xlDown)

var
XL: TExcelApplication;
WB: ExcelWorkbook;
WS_SFACT,WS_NAKL,WS_SCHET: ExcelWorksheet;
Range: ExcelRange;

// Открываем EXCEL
XL := TExcelApplication.Create(Self);
XL.ConnectKind := ckNewInstance;
XL.Connect;

// Открываем существующую книгу EXCEL [fTemp]
WB := XL.Workbooks.Open(fTemp, 3, False,
 EmptyParam, EmptyParam, EmptyParam, true, EmptyParam, EmptyParam,
 EmptyParam, EmptyParam, EmptyParam, true, EmptyParam, EmptyParam, 0);

// Открываем лист ['СЧЕТ_ФАКТУРА']
WS_SFACT := WB.Sheets['СЧЕТ_ФАКТУРА'] as ExcelWorksheet;

// Вставляем пустые ячейки [A26:L26] со сдвигом нижележащих ячеек
// существующей таблицы товаров вниз
WS_SFACT.Range['A26','L26'].Insert(xlDown);

Здесь пишет ошибку [Not enough actual parametrs].
У Insert должно быть два параметра (Shift: OleVariant,CopyOrigin: OleVariant),
а у меня только один Insert(xlDown).


Neket   (2007-05-03 08:40:00) [8]

Или так можеш попробовать:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1177487406&n=18


YurikGL   (2007-05-02 20:20:00) [9]

По аналогии с
http://www.delphimaster.ru/cgi-bin/forum.pl?n=18&id=1178012859
Пишем макрос, смотрим как он выглядит и приводим к нужному синтаксису.
У меня получилось так:
try
app:=GetActiveOleObject('Excel.Application') as ExcelApplication;
App.Visible := True;
App.Rows.item[5].Select;
App.Selection.Insert(xlDown);
finally
 App:=Unassigned;
end;


Егоров А.Н.   (2007-05-02 17:53:00) [10]

Можно вставить пустые строки, а можно вставить пустые ячейки A26:L(26+N)


Neket   (2007-05-02 17:21:00) [11]

А уточни.. Каких именно строк?


Наверх

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