![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]А уточни.. Каких именно строк?