![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| RUVATA |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 24.8.2010 Репутация: нет Всего: нет |
Всем доброго времени суток...
Столкнулся с одни затруднением... Использую Visual Studio 2010, осваиваю технологию .NET - язык выбрал Vb.NET в основном из-за большого опыта работы на VBA Основным направлением моей работы является разработка для MS Office и Open Office, использовал естественно VBA и OOBasic, Java. согласно анонсов .NET Office проектов - цитирую Решения Office в Visual Studio Используют код, хранящийся отдельно от документа (для настроек уровня документа), или сборку, загружаемую приложением (для надстроек уровня приложения). Предоставляет доступ как к объектным моделям Office, так и к прикладным программным интерфейсам .NET Framework. Предназначаются для обеспечения безопасности, упрощения поддержки кода и позволяют в полной мере использовать интегрированную среду разработки (IDE) Visual Studio. Подходят для решений, выигрывающих от использования всего спектра ресурсов Visual Studio и .NET Framework. Честно - меня зацепило... Но вот какая кляуза на примере тог-же Excel ... в тех-же Windows Forms приложениях мы имеем замечательную возможность подключить сборки
и объявлять объекты уровня Excel.Application, колекции Excel.Application.WorkBooks, ну и непосредственно самой Excel.Application.Workbook и вот собсно trouble : - на этом дальнозоркость Visual Studio 2010 заканчивается... т.е. он обозревателям структуры/объектов класса - контекстной подсказкой не видит ничего дальше любого Excel.Application.Workbook.Sheet("такой-то") с присвоенным именем, а соответственно и всех объектов листа, всего что на нем и.т.д. а это извините большая часть кода... Благо я знаком с синтаксисом VBA и названиями объектов,свойств,методов наизусть , так мало того нет синтаксической подсказки, так еще и в справке нет раздела по объектной структуре Excel/// Это как бы пипец как неудобно, и мне кажется что я чнго-то не знаю, и возможно нужно подключить, скачать библиотеки справки, что-то подшаманить в VS2010... Обращаюсь к коллективному разуму за советом, кто имел дело, или даже не имел - что думает ? Это сообщение отредактировал(а) RUVATA - 18.2.2011, 09:54 |
|||
|
||||
| gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 3 Всего: 40 |
Я не работал с офисом, но первое что пршло в голову, что вы пошли по пути позднего связывания, когда код на этапе компиляции не знает структуры объекта, т.е. для него сейчас эксель представлен типо dynamic. Почитайте про тип связывания и как они осуществляются в .net.
И еще посмотрите на такую штуку как VSTO |
|||
|
||||
| RUVATA |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 24.8.2010 Репутация: нет Всего: нет |
Проблема была действительно в связывании...
gambit, спасибо... Вот здесь можно почитать... а если в двух словах, то... Необходимо подключение COM сборки Office.dll (если на машине установлен Office, то она зарегистрирована в системе как Microsoft Office **** Object Library, где **** номер установленной версии н\п Microsoft Office 14.0 Object Library (Если установлен MS Office 2010) Microsoft Office 11.0(или12.0) Object Library(Если установлен MS Office 2007) более ранние соответствуют разнообразным модификациям MS Office 2003 * - предугадывая вопрос о будущей совместимости, - ДА практика показывает(судя по отзывам), что лучше использовать сборку 2007-го офиса... она подойдет как к 2003 если не будете использовать специфические для 2007-го функции и свойства, так и для 2010 в котором в полной мере представлена функциональность 2007-й версии... * - предугадывая вопрос о том как подключить соответствующую сборку - судя по всему отдельно от MS Office они не поставляются, правда ее всегда можно выдрать "ручками" с любой машинюшки где Office установлен, и зарегать ее опять-же "ручками" * - в последних сборках Office вся объектная модель представленна одной Office.dll в некоторых более ранних версиях, возможно они будут отдельными для каждого приложения... Так-же во избежание совпадающих имен типов/объектов/функций с базовыми пространствами имен Visual Studio, советуется в импортированных пространствах имен проекта явно указать ссылку на Microsoft.Office.Core (!!! который появится там после того как вы собственно подключите к проекту COM сборку) * - собственно сборка это имеет имя "Microsoft.Office.Core" (Office.dll) Еще раз спасибо, gambit ... И всем приятного программирования Это сообщение отредактировал(а) RUVATA - 21.2.2011, 09:28 |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |