Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > Как сделать экспорт из vb.net в excel ? |
Автор: Farkhod 11.5.2004, 12:56 |
На 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 ёксел. не помогает. |
Автор: Kurt 11.5.2004, 15:25 |
Если ты уберешь все строки ниже xcl.Workbooks.Add - тоже выдает ошибку? Просто у меня все нормально. А ниже этой строки сейчас проверить не могу.. |
Автор: Farkhod 11.5.2004, 15:57 |
а пофигу. все равно таже ошибка странно... ![]() |
Автор: Kurt 11.5.2004, 16:40 | ||
Погоди.. И ЭТОТ код выдает ошибку? (у меня все ОК..)
|
Автор: stron 11.5.2004, 17:33 | ||
Вопрос: А почему не хотите сделать через OLEDB?
ЗЫ: Это я так в MSDN'е нашел |
Автор: Kurt 11.5.2004, 18:26 |
Через OLEDB? Да. Согласен. ![]() Вот тока почему у товарища ЭТОТ код не работал?.. Или работает?.. |
Автор: stron 11.5.2004, 18:47 | ||
А у меня он тоже не работает! ![]() Но у меня не видит пространство имён Excel, а нужную DLL-ку я не нашел. Правда, у меня .NET под другой операционкой, а там нет офиса. Может в этом причина? А как всё это работает?
Честно говоря, не совсем понимаю зачем он это делал, т.к. на тип Excel.Application у него ничего не ругается. |
Автор: Farkhod 12.5.2004, 08:21 | ||
проблема была в 2003 - офисе. Поставил 2000 и все ок. А зачем делать через Oledb когда можно проще.
Именно ругался из за того что библиотека была от 11-офиса. А теперь я подключил 9-ый. А можно и без подключения просто: Dim xcl as Object xcl=CreateObject("Excel.Application") |
Автор: Kurt 12.5.2004, 18:51 | ||
Как я уже говорил, у меня все работает. Правда для этого надо было сделать RCW и добавить ссылку в reference (в VS RCW создается автоматически..). Честно говоря, без офиса не пробовал, хотя, ИМХО, оно и не должно работать без него - ведь ты фактически обращаешься к Excel. Как все работает? Ты вызываешь COM-сервер Excel и фактически исполняешь его методы. Сейчас вроде у всех продуктов MSOffice есть COM-доступ. Свой код проверял под WinXP.. |
Автор: stron 12.5.2004, 21:17 | ||
Понятно, я просто думал, что у .NET есть своя(встроенная) библиотека для работы с excel'евскими файлами. |
Автор: Kurt 12.5.2004, 21:25 |
Вроде как есть какая-то сборка под новый офис, но я не уверен.. |