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

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

WorkSheet.Activate в Office2007 [D6, WinXP]


opolo2000 ©   (2010-04-20 16:19:00) 

Добрый день.
На моей машине стоит Microsoft Office 2003. Экспортирую данные из Excel в своё приложение. Данные расположены на 2-х листах.
Сперва:
WorkSheet:=WorkBk.WorkSheets.Get_Item(1) as _WorkSheet; WorkSheet.Activate(1);
WorkSheet.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Activate;
X:=GroupXLApp.ActiveCell.Row;
Y:=GroupXLApp.ActiveCell.Column;
и далее собственно экспорт.
Затем:
WorkSheet:=WorkBk.WorkSheets.Get_Item(2) as _WorkSheet; WorkSheet.Activate(2);
WorkSheet.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Activate;
X:=GroupXLApp.ActiveCell.Row;
Y:=GroupXLApp.ActiveCell.Column;
и далее собственно экспорт.
Всё работает нормально.
Перехожу на машину другого пользователя, у которого стоит Microsoft Office 2007. При выполнении процедуры WorkSheet.Activate появляется критическая ошибка "Использован старый формат, либо библиотека имеет неверный тип."
Как правильно сделать «активную страницу» в Microsoft Office 2007?


Виталий____   (2010-04-21 14:34:00) [1]

У меня был в свое время странный глюк с 2007 офисом: вылетал при создании таблицы в ворде. Ругался на несоответствие типов. В упор не мог понять в чем дело (на 2003 проблем не было, на другой машине с 2007 тоже все ок). Помогла, как ни странно, переустановка офиса с другого дистрибутива.
Если есть возможность, проверь другой дистриб 2007 офиса - может это все происки "злобных пиратов, которые выкидывают целые куски программ, чтобы сделать свое черное дело..."


opolo2000   (2010-04-21 13:01:00) [2]

Вот (почти полностью) код выглядит так: переменной XlsFileName я указываю путь к файлу *.xls:
GroupXLApp.Connect;
GroupXLApp.WorkBooks.Open(XlsFileName,EmptyParam,EmptyParam,EmptyParam,EmptyPara m, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,Emp tyParam,0);
WorkBk:=GroupXLApp.WorkBooks.Item[1];
WorkSheet:=WorkBk.WorkSheets.Get_Item(1) as _WorkSheet;
{ShowMessage('Попытка активации...');}
WorkSheet.Activate(1);
s2:=WorkSheet.Name;
{ShowMessage('Активация листа '+#34+s2+#34+' прошла успешно.');}
В строке WorkSheet.Activate(1) появляется критическая ошибка в Excel2007 (!!!) "Использован старый формат, либо библиотека имеет неверный тип."


oldman   (2010-04-21 11:46:00) [3]


> Перехожу на машину другого пользователя, у которого стоит
> Microsoft Office 2007.


Ты не с файлами работаешь, а напрямую с Excel?


opolo2000   (2010-04-20 16:40:00) [4]

Не "Экспортирую", а "Импортирую данные из Excel в своё приложение" - ошибся.


Наверх

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