Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> VS 2010 контекстная подсказка для сборок Office 
:(
    Опции темы
RUVATA
Дата 18.2.2011, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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 приложениях мы имеем замечательную возможность подключить сборки
Код

Imports Microsoft.Office.Interop.Excel
Imports Microsoft.Office.Interop

и объявлять объекты уровня 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
PM MAIL   Вверх
gambit
Дата 18.2.2011, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 3
Всего: 40



Я не работал с офисом, но первое что пршло в голову, что вы пошли по пути позднего связывания, когда код на этапе компиляции не знает структуры объекта, т.е. для него сейчас эксель представлен типо dynamic. Почитайте про тип связывания и как они осуществляются в .net.

И еще посмотрите на такую штуку как VSTO
PM MAIL ICQ Skype   Вверх
RUVATA
Дата 21.2.2011, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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 ...
И всем приятного программирования smile

Это сообщение отредактировал(а) RUVATA - 21.2.2011, 09:28
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0585 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.