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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать экспорт из vb.net в excel ? vb.net выдает ошибку... 
:(
    Опции темы
Farkhod
  Дата 11.5.2004, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 23.4.2003
Где: Ташкент

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



На 6-ом vb для того чтобы сделать отчет по б/д я делаю так:

Dim xcl As Excel.Application
Set xcl = New Excel.Application
xcl.Workbooks.Add
With xcl.ActiveSheet.QueryTables.Add(Connection:="ODBC;DRIVER=SQL Server; SERVER=Servak; UID=sa; PWD=123; DATABASE=Northwind", Destination:=xcl.Range("A1"))
.CommandText = "SELECT * FROM Customers"
.Refresh BackgroundQuery:=False
End With
xcl.Visible = True


Но в vb.net этот код не пашет. Ругается на строку xcl.Workbooks.Add
говорит:

"An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in excel_report_2.exe
Additional information: Old format or invalid type library."

А мне надо все это сделать в vb.net. Пожалуйста подскажите как быть ?

P.S. Я пробовал в references добавить и 5 и 11 ёксел. не помогает.
PM MAIL   Вверх
Kurt
Дата 11.5.2004, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Если ты уберешь все строки ниже xcl.Workbooks.Add - тоже выдает ошибку?
Просто у меня все нормально. А ниже этой строки сейчас проверить не могу..

Это сообщение отредактировал(а) Kurt - 11.5.2004, 15:31


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Farkhod
Дата 11.5.2004, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 23.4.2003
Где: Ташкент

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



а пофигу. все равно таже ошибка
странно... notify.gif
PM MAIL   Вверх
Kurt
Дата 11.5.2004, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Погоди.. И ЭТОТ код выдает ошибку? (у меня все ОК..)
Код
Imports Excel

Module Module1

   Sub Main()
       Dim xcl As Excel.Application = New Excel.Application()
       xcl.Workbooks.Add()
     
       Console.WriteLine("Success!!!")
       Console.Read()
       Console.Read()

   End Sub

End Module



--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
stron
Дата 11.5.2004, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Консультант
***


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

Репутация: 4
Всего: 36



Вопрос: А почему не хотите сделать через OLEDB?

Код

Dim DS As System.Data.DataSet
Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
Dim MyConnection As System.Data.OleDb.OleDbConnection

MyConnection = New System.Data.OleDb.OleDbConnection( _
     "provider=Microsoft.Jet.OLEDB.4.0; " & _
     "data source=C:\myData.XLS; " & _
     "Extended Properties=Excel 8.0;")
' Select the data from Sheet1 of the workbook.
MyCommand = New System.Data.OleDb.OleDbDataAdapter( _
     "select * from [Sheet1$]", MyConnection)

DS = New System.Data.DataSet()
MyCommand.Fill(DS)
MyConnection.Close()


ЗЫ: Это я так в MSDN'е нашел


--------------------
подписи нет
PM ICQ   Вверх
Kurt
Дата 11.5.2004, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Через OLEDB?
Да. Согласен. smile.gif
Вот тока почему у товарища ЭТОТ код не работал?..
Или работает?..


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
stron
Дата 11.5.2004, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Консультант
***


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

Репутация: 4
Всего: 36



А у меня он тоже не работает! smile.gif

Но у меня не видит пространство имён Excel, а нужную DLL-ку я не нашел.
Правда, у меня .NET под другой операционкой, а там нет офиса.
Может в этом причина?
А как всё это работает?


Цитата

P.S. Я пробовал в references добавить и 5 и 11 ёксел. не помогает.

Честно говоря, не совсем понимаю зачем он это делал, т.к. на тип Excel.Application у него ничего не ругается.


--------------------
подписи нет
PM ICQ   Вверх
Farkhod
Дата 12.5.2004, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 23.4.2003
Где: Ташкент

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



проблема была в 2003 - офисе. Поставил 2000 и все ок.
А зачем делать через Oledb когда можно проще.
Цитата
Честно говоря, не совсем понимаю зачем он это делал, т.к. на тип Excel.Application у него ничего не ругается.

Именно ругался из за того что библиотека была от 11-офиса. А теперь я подключил 9-ый.
А можно и без подключения просто:
Dim xcl as Object
xcl=CreateObject("Excel.Application")
PM MAIL   Вверх
Kurt
Дата 12.5.2004, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Цитата

А у меня он тоже не работает! 

Но у меня не видит пространство имён Excel, а нужную DLL-ку я не нашел.
Правда, у меня .NET под другой операционкой, а там нет офиса.
Может в этом причина?
А как всё это работает?

Как я уже говорил, у меня все работает.
Правда для этого надо было сделать RCW и добавить ссылку в reference (в VS RCW создается автоматически..).
Честно говоря, без офиса не пробовал, хотя, ИМХО, оно и не должно работать без него - ведь ты фактически обращаешься к Excel.
Как все работает? Ты вызываешь COM-сервер Excel и фактически исполняешь его методы.
Сейчас вроде у всех продуктов MSOffice есть COM-доступ.

Свой код проверял под WinXP..



--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
stron
Дата 12.5.2004, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Консультант
***


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

Репутация: 4
Всего: 36



Цитата

Как все работает? Ты вызываешь COM-сервер Excel и фактически исполняешь его методы.
Сейчас вроде у всех продуктов MSOffice есть COM-доступ.

Понятно, я просто думал, что у .NET есть своя(встроенная) библиотека для работы с excel'евскими файлами.


--------------------
подписи нет
PM ICQ   Вверх
Kurt
Дата 12.5.2004, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Вроде как есть какая-то сборка под новый офис, но я не уверен..


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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