![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Написал я программу для внутренних нужд одной конторы, которая преобразует определенным образом Excel-файлы. Так вот у меня на компе программа работает, а у клиента на ноуте в конце работы программы (на методе SaveAs) вылетает исключение. С правами на запись все в порядке. Погуглил... подобная проблема встречалась не раз... и вроде бы ее причиной является использование разных библиотек Excel. Так я поставил один и тот же Office и себе, и клиенту - не помогает.
Подскажите, пожалуйста, в чем может быть проблема? |
|||
|
||||
| moric83 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 9.7.2007 Репутация: нет Всего: 1 |
У меня была таже проблема - глючила именно этот метод, пришлось поменять версию офиса. Проблемы возникают при Офисе 2000 (если я не ошибаюсь) - карочи поменял на 2003.
|
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
moric83, а у меня как раз-таки офис 2003
|
|||
|
||||
| moric83 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 9.7.2007 Репутация: нет Всего: 1 |
Вот рабочии код:
Может парамеры в функций попробовать поменять? А что за исключение вылетает ? |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Оказывается, у меня на компе код работал только с библиотекой от 2007-го офиса. Как только я его снес и поставил 2003, и у меня метод SaveAs стал выбрасывать исключение. У меня в принципе не получается сохранить ни одну книгу.
Исключение вполне стандартное: Exception from HRESULT: 0x800A03EC. |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Изменил метод SaveAs на Save:
Работает. Однако меня не совсем устраивает функциональность метода Save. Все-таки хотелось бы использовать метод SaveAs. Гугль не выдает каких-нибудь серьезных багов в функции SaveAs в 11-м офисе... значит я что-то делаю не так... Хотелось бы узнать, что именно. Надеюсь на вашу помощь. |
|||
|
||||
| moric83 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 9.7.2007 Репутация: нет Всего: 1 |
Я думаю что проблема в параметрах функций SaveAs, ты что-то не то ставиш. посмотри на MSDN некоторые параметры by default имеют значение false а ты ставиш Type.Missing.
Проблема в COM обьекте - что-то ему не нравится Кстати может тебе поменять Type.Missing на System.Reflection.Missing.Value . А и ешё может и за настроик системы типа - Regional Options - COM обьект глючит. |
|||
|
||||
| Retro |
|
|||
![]() Диалектик ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1934 Регистрация: 28.6.2005 Где: Киев Репутация: 9 Всего: 117 |
Вот у меня рабочий пример. Может поможет.
|
|||
|
||||
| Idsa |
|
||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Этот дефект уже устранен
Судя по рефлектору, и Type.Missing, и System.Reflection.Missing.Value должны быть равны null (следовательно, никакой разницы, что именно использовать, нет):
Однако ни одна из следующих проверок не проходит:
Интересно, в чем дело? Изменил вызов метода до вот такого состояния:
Не помогло :( |
||||||||||
|
|||||||||||
| moric83 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 9.7.2007 Репутация: нет Всего: 1 |
тогда переустанови винду
|
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Проблема решилась весьма неожиданно. Я попробовал скормить методу SaveAs формат XLWorkbookNormal - и все заработало.
Проблема в общем-то решена... однако причина недолюбливания моим офисом других форматов мне до сих пор не ясна. |
|||
|
||||
| moric83 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 9.7.2007 Репутация: нет Всего: 1 |
||||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Да уж... А отладка COM-приложений, когда на сотню ошибок одно исключение, - просто жесть. P. S. Вопрос насчет отличия null, Type.Missing и System.Reflection.Missing.Value остается в силе. |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Поле Missing у Type установлено равным полю Value класса Missing, которое указывает на единственный существующий экземпляр этого класса.
|
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
||||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |