powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Разные версии офиса и системы
20 сообщений из 20, страница 1 из 1
Разные версии офиса и системы
    #38564330
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите пожалуйста, мне нобходима написать программу на VB.Net для обработки Excel файлов.
У меня стоит 2010 офис , но по тз возможно использование 2007 и 2010 .У себя в проекте я подключила библиотеку
Microsoft Excel 14.0 Object Library - это 2010....а как быть если у пользователябудет стоять офис 2007??? можноли подключить сразу 2 библеотеки??? не будет ли возникать конфликта имен или достаточно только подключить библеотеку 2007
Еще хотелось бы уточнить если проект писался на 32-ой разрядной системе, будет ли Exe запускаться если процессор будет 64 у пользователя?
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38565343
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasha klemer,

Зависит от того, как Excel будет использоваться. Microsoft не рекомендует Office Automation , если речь о нем, для этого есть Open XML SDK , впрочем отлично подходит и для всего остального. Если дело в коде VBA, то есть Conditional Compilation с примерами тут и тут . У объекта Excel.Application есть свойство Version. Битность системы можно узнать, например, вот так . Код .NET, не связанный с Interop, должен работать независимо от битности, если выбрать компиляцию Any CPU.
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38565944
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соглашусь, Interop не очень дружит с разными версиями. Да и "обработка файлов" звучит совсем размыто. Если это что-то вроде надстройки COM к Excel - то лучше сразу поискать в инете NetOffice и делать связь через его библиотеки - так не будете зависеть от конкретной версии Excel под Interop.
Если же надо открывать файлы и что-то делать внутри - то iMrTidy уже дал ответ на данный счет. Правда, там насколько мне известно можно обрабатывать только файлы 2007 и старше, построенные на схемах XML и имеющих открытый доступ к схемам. Для формата .xls такой подход уже не подойдет.
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38570054
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблемму устранила следующим образом.
В коде было обращение к листам по именам , например
Sheets("Dic_Worker")Я заемнила все обрашения к листам с поименованных на индексные
Sheets(1) и ошибка исчезла.

Спасибо за помощь. Информацию возьму на вооружение.
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38570322
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasha klemer,

Какое-то странное решение описанной проблемы. Обращение к листам одинаково во всех версиях. Хоть по именам, хоть по индексам. На совместимость это не влияет.
Вывод: ошибка была не в версиях, а в неверном синтаксисе обращения к свойствам объекта.
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38571040
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasha klemer,

Надеюсь пользователи знают, что менять местами листы нельзя.
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38571130
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думаю проблема была в том, что в каком-то из имен использовались знаки -() или пробел. Обращение по имени предпочтительнее, возможная вставка/удаление/перемещение листов тогда не повлияет на работу.
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38571138
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пользователи изменять порядок листов не смогут. На счет пробелов в именах имен- их точно не было , из знаков были только "нижнее подчеркивание", а на счет "...неверном синтаксисе обращения к свойствам объекта..." -
было
Код: vbnet
1.
ExWS_Dic = ExWB_Dic.Sheets("Dic_Worker")


стало
Код: vbnet
1.
ExWS_Dic = ExWB_Dic.Sheets(1)

...что тут может быть не верного.... Вообщем данная проблема решилась подобным образом.
Спасибо.
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38571253
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дык, чему равно ExWB_Dic.Sheets(1).Name?
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38571724
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasha klemer
Код: vbnet
1.
ExWS_Dic = ExWB_Dic.Sheets("Dic_Worker")

...что тут может быть не верного...
Тут может быть "о" не английская, а русская. И "с" тоже. А имя листа как раз по-английски. Или наоборот. Или пробел на конце/вначале у реального листа. В любом случае ошибка была именно в имени листа, а никак не в самом факте обращения к нему по имени.
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38571774
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот например
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38571802
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasha klemerвот напримера причем тут этот пример?

переименуйте ваш лист в "W" и попытайтесь к нему обратиться по имени.
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38572414
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
переименовала лист 2 в "W"
вар.1) как написано в справке MSDN
http://msdn.microsoft.com/en-us/library/office/bb211416(v=office.12).aspx
You can use the Sheets property to return a worksheet, chart, module, or dialog sheet; the Sheets collection contains all of these. The following example activates the sheet named "Chart1" in the active workbook.

Sub ActivateChart()
Sheets("Chart1").Activate
End Sub


У себя пишу
Код: vbnet
1.
ExWS_Dic = ExWB_Dic.Sheets("W")



выдает ошибку см. рис.

изменила на
Код: vbnet
1.
ExWS_Dic = ExWB_Dic.Sheets.item("W")


Ошибка та же!

на окне ошибки написано что по умолчанию используется get_Defаult(ObjectIndex) .... значит все таки правильное обращение по индексу?
либо для обращения по имени нужно использовать другое свойство... тогда какое?
в моем случае вариант с обращением о индексу меня устраивает.
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38572569
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasha klemer,

index хоть и используется по умолчанию, но есть же перегрузки метода, верно? Среди которых и та, что принимает имя листа.
Вы упорно не хотите читать того, что Вам пишут: сверьте посимвольно реальное имя листа и то имя, которое указываете для обращения к листу. Уверен, где-то расхождение.
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38572652
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я внимательно прочитала все что мне написали, и в обрашение
Код: vbnet
1.
ExWS_Dic = ExWB_Dic.Sheets("W")


"W" что на в имя листа, что в код вставляла через копировнаие. в имени листа проверила наличие пробелов
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38573495
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasha klemer,

Возможно ошибка в другом месте. Если протестировать вот так:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Imports Excel = Microsoft.Office.Interop.Excel

Module Module1

    Sub Main()
        Dim myXl As Excel.Application
        Dim ws As Excel.Worksheet

        myXl = New Excel.Application
        myXl.Visible = True
        myXl.Workbooks.Open("C:\temp\test.xlsx")

        ws = myXl.Sheets("W")

        Console.WriteLine(ws.Name)

        Console.ReadKey()

    End Sub

End Module

...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38573713
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
common language runtime, CLR- если я правилно поняла то вы имеете ввиду его, он же должен входить в пакет поставки 3.5. SP1 ??? а раз .NET Framework 3.5 SP1 установлен на ПК пользователя, то тогда и Runtime тоже должен был установиться до нужной версии... или я что -то не правильно понимаю... можно разьяснения
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38573716
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ни в ту ветку отправлила сообщения. извините
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38573723
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iMrTidy, протестировала...все получилось. обращение к листу по имени корректно ...спасибо.

Но если можно , разьясниет пожалуйста
Если при работе с программой возможно использование как 2010 офиса, так и 2007, то какую библеотеку следует подключчать???? 12 или 14???
...
Рейтинг: 0 / 0
Разные версии офиса и системы
    #38574869
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasha klemeriMrTidy, протестировала...все получилось. обращение к листу по имени корректно ...спасибо.

Но если можно , разьясниет пожалуйста
Если при работе с программой возможно использование как 2010 офиса, так и 2007, то какую библеотеку следует подключчать???? 12 или 14???

Более поздняя версия библиотеки, как правило, полностью совместима с предыдущими версиями. В данном случае лучше использовать наиболее последнюю версию, т.е. 15, но пользоваться только тем функционалом, что доступен для 2007 офиса. По-крайней мере так советует Microsoft.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Разные версии офиса и системы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]