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