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

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

Помогите! OLE Excel! [MSSQL]


DBDev ©   (2003-07-16 12:42:00) 

То есть создаем оле, все настраиваем, переименовываем первую из 3-х вкладок во вновь созданной книге, но как перейти на вторую и переименовать ее, как сделать ее активной, может кто подскажет?

V = Variant::CreateObject("excel.application");
V.Exec(PropertySet("Visible") << false);
V.Exec(PropertyGet("Workbooks"));
V.Exec(PropertySet("SheetsInNewWorkbook") << 3);
V.Exec(Function("Workbooks")).Exec(Procedure("Add"));
V.Exec(PropertyGet("ActiveSheet")).Exec(PropertySet("Name") << "ааааа");

V.Exec(PropertyGet("ActiveSheet")).Exec(PropertySet("item") << 2); // не работает

V.Exec(PropertyGet("ActiveSheet")).Exec(PropertySet("Name") << "ббббб");
...


Sandman25   (2003-07-16 16:24:00) [1]

Опять с руками что-то :)
(Excel.Workbooks.Items[Excel.Workbooks.Count].Sheets.Item[2] as _WorkSheet).Activate(LOCALE_USER_DEFAULT)


Sandman25   (2003-07-16 16:20:00) [2]

Даже еще хуже, я и сам немного ошибся в получении WorkBook.
Надо:
(Excel.ActiveWorkbook.Sheets.Item[2] as _WorkSheet).Activate(LOCALE_USER_DEFAULT)
или
(Excel.Workbooks.Items[IExcel.Workbooks.Count].Workbook.Sheets.Item[2] as _WorkSheet).Activate(LOCALE_USER_DEFAULT)

Хотя лучше использовать результат функции Workbooks.Add, которая возвращает как раз добавленную книгу.


Sandman25   (2003-07-16 16:13:00) [3]

Внимательнее читаем. Sheets, а не Worksheets.


DBDev   (2003-07-16 13:48:00) [4]

В моем случае:

V.Exec(Function("Workbooks")).Exec(PropertyGet("Worksheets")).Exec(PropertyGet("Item") << 2).Exec(Function("Activate"));

Не работает! Не понимает Worksheets


Sandman25   (2003-07-16 13:01:00) [5]

(Excel.WorkBooks.Sheets.Item[2] as _WorkSheet).Activate(LOCALE_USER_DEFAULT)

Осталось только перевести на С :)


Наверх

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