![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| n0rb |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
Здравствуйте, коллеги.
Я разрабатываю .NET-приложение, одна из функций которого - генерация довольно сложных Word- и Excel-документов. Проблема в том, что у меня на машине стоит 2007 офис, а у заказчика 2003. Хотелось бы, чтобы работа с Office выполнялась идентично на обоих версиях (2003 и 2007), и при этом не используя дергание методов наподобие Activator.CreateInstance(Type.GetTypeFromProgID("Word.Application")), MethodInfo.Invoke("...."), BindingFlags и т.д., так как тормоза очень большие + ужасно неудобно при разработке. В COM-референсах есть только 12-й офис, т.е. 2007. Насколько знаю, если у клиента 2003 - это не пройдет. Я подумал - а можно ли, например, стянуть отдельные файлы библиотек для Office11 (что-то вроде DLL, TLB или OLB) и добавить в референсы проекта? Смогу ли я разрабатывать и тестировать проект на своей машине, имея 2007 офис, и пойдет ли это под 2003-й при таких манипуляциях? Может существует какой-нибудь другой выход (напоминаю, мне нужна именно совместимосить обоих версий)? Заранее спасибо. |
|||
|
||||
| marcusmae |
|
||||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 22 Всего: 39 |
n0rb, если я правильно понял, то ведь неважно, какая версия офиса, если и там, и там использовать один и тот же старый формат doc/xls (и не использовать новый docx/xlsx)? Тогда действительно, например, для работы с таблицами Excel можно "стянуть" COM-библиотеки Microsoft Jet 4.0 (Interop.ADODB.dll и Interop.ADOX.dll) от 2003-его и включить их в свой дистрибутив. Хотя можно без них обойтись и работать только на System.Data.OleDb. Проблема в том, что он работает медленно, поэтому сам лично предпочитаю некоторую смесь.
Загрузка :
Сохранение :
-------------------- ἀπὸ μηχανῆς θεός |
||||
|
|||||
| n0rb |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
marcusmae, спасибо за классы, но дело в том, что в этой ситуации мне наиболее важна работа с документами Word, т.е. замена текста, вставка таблиц, картинок, колонок и пр.
Для всего этого в VBA есть средства, но меня именно интересует, можно ли как-нибудь хитро использовать Office Class Library (или что-то другое), т.е. не прибегая к late binding, и при этом сохранить совместимость.
это само собой, т.к. 2003-й не "понимает" формат Office XML, который был введен в 2007-й версии. Вопрос в том, как этот doc/xls документ сделать, чтобы он был совместим с 2003, когда у меня 2007 стоит. Это сообщение отредактировал(а) n0rb - 19.3.2008, 18:13 |
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 22 Всего: 39 |
Ну вроде это уже обсудили : можно сделать так, чтобы создание документа вообще не зависило от того, какой офис установлен на машине. Для этого нужно обеспечить дистрибутив своей программы необходимым набором COM-библиотек - не важно от какой версии офиса : 2003, 2007 или OpenOffice 2.0. Главное, чтобы Ваша программа умела с ними работать. Пара классов для Excel служат тому примером. Нужно что-то подобное для Word-а? -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |