У меня возникают проблемы при работе с Excel через Interop (old style formarmat ... error) может ли это быть связано со старой версией Framework? Если да, то как мне переустановить старый Выжуал с новым Framework'м? А если нет, то как мне исправить проблему? Помогите pls!!!
Здравствуйте, JazzJazz, Вы писали:
JJ>У меня возникают проблемы при работе с Excel через Interop (old style formarmat ... error) может ли это быть связано со старой версией Framework? Если да, то как мне переустановить старый Выжуал с новым Framework'м? А если нет, то как мне исправить проблему? Помогите pls!!!
У тебя версия Excel совпадает с версией в interop-e? Проще говоря, может твой интероп под другую версию Excel? У меня была похожая фигня, но она вылечилась пересозданием интеропов, перекопиляцией или работой на другом компе — точно уж не помню, давно было...
Здравствуйте, Andrbig, Вы писали:
A>Здравствуйте, JazzJazz, Вы писали:
JJ>>У меня возникают проблемы при работе с Excel через Interop (old style formarmat ... error) может ли это быть связано со старой версией Framework? Если да, то как мне переустановить старый Выжуал с новым Framework'м? А если нет, то как мне исправить проблему? Помогите pls!!!
A>У тебя версия Excel совпадает с версией в interop-e? Проще говоря, может твой интероп под другую версию Excel? У меня была похожая фигня, но она вылечилась пересозданием интеропов, перекопиляцией или работой на другом компе — точно уж не помню, давно было...
Да, у меня Excel 2000, а Interop для XP. А где взять версию для 2000 Office?
И какая переносимость будет у релиза? Он будет работать только с одной версией офиса или с любой?
Здравствуйте, JazzJazz, Вы писали:
JJ>Да, у меня Excel 2000, а Interop для XP.
Батенька, дык XP появился позже 2000! Это означает, что вы с новым интеропом идете к старому COM-у. Ах шалун!
JJ> А где взять версию для 2000 Office?
Сделать интероп проще простого — Add Reference в проекте, указать нужный COM — и все!
JJ>И какая переносимость будет у релиза? Он будет работать только с одной версией офиса или с любой?
Логично ожидать работу новых COM-ов (в данном случае XP) со старыми интерфейсами (интероп от 2000), т.к. новый COM поддерживает интерфейсы старого (чаще всего). Обратное совсем не очевидно.
Лично я поморочился и пришел к выводу, что лучше всего каждой версии — свой интероп. Хотя я воевал с Word.
Здравствуйте, Andrbig, Вы писали:
A>Здравствуйте, JazzJazz, Вы писали:
JJ>>Да, у меня Excel 2000, а Interop для XP.
A>Батенька, дык XP появился позже 2000! Это означает, что вы с новым интеропом идете к старому COM-у. Ах шалун!
JJ>> А где взять версию для 2000 Office?
A>Сделать интероп проще простого — Add Reference в проекте, указать нужный COM — и все!
Вроде понял. Thanks. Ща буду проверять.
JJ>>И какая переносимость будет у релиза? Он будет работать только с одной версией офиса или с любой?
A>Логично ожидать работу новых COM-ов (в данном случае XP) со старыми интерфейсами (интероп от 2000), т.к. новый COM поддерживает интерфейсы старого (чаще всего). Обратное совсем не очевидно.
A>Лично я поморочился и пришел к выводу, что лучше всего каждой версии — свой интероп. Хотя я воевал с Word.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, JazzJazz, Вы писали:
JJ>>Вроде понял. Thanks. Ща буду проверять.
А>проверь, также и по этой ссылке — старая, как excel, фича А>BUG: "Old Format or Invalid Type Library" Error When Automating Excel А>http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q320369
А>там есть и лекарство
Супер!!!!!! Сразу помогло. Большое-пребольшое спасибо.
Excel
От:
Аноним
Дата:
07.10.04 12:55
Оценка:
Такая проблема возникает когда культура потока, в котором ведется работа с Excel'ем, не совпадает с версией самого Excel'а. Т.е. у меня к примеру, русская локализация Windows, а офис стоит английский => возникает описанная проблема. Это признанный баг, путь решения — установить культуру совпадающую с Excel'ем для текущего потока, к примеру так:
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
Вы все еще не программируете на платформе Microsoft.NET — тогда мы летим к вам