Как автоматизировать Microsoft Excel 2010 из Visual Basic .NET 2010 - PullRequest
0 голосов
/ 03 марта 2012

У меня есть база данных в VB2010, и я хочу перенести 2 таблицы из этой базы данных в MS Excel 2010. Я столкнулся с http://support.microsoft.com/kb/301982, но даже после выполнения шагов я получаю сообщение об ошибке: Введите 'Excel.Приложение "не определено.

Imports Microsoft.Office.Core
Imports Microsoft.Office.Interop.Excel
Imports System.Data

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click
        Dim oXL As Excel.Application
        Dim oWB As Excel.Workbook
        Dim oSheet As Excel.Worksheet
        Dim oRng As Excel.Range
        '' etc...
    End Sub

End Class

Ответы [ 4 ]

3 голосов
/ 23 ноября 2012

Попробуйте добавить ссылку из Меню: Проект >> Добавить ссылку >> .NET Tab

И добавить эти:

Microsoft.Office.infoPath.Excel
Microsoft.Office.Tools.Excel
2 голосов
/ 03 марта 2012
 Imports Microsoft.Office.Interop.Excel

Это означает, что используемое вами имя типа просто Приложение , а не Excel.Application.Это может вызвать проблемы, хотя это будет неоднозначное имя типа в приложении Winforms или WPF, у них также есть общий тип с именем Application.Вот почему вы так часто видите приложение Excel.Application в примере кода.С Excel в качестве псевдонима пространства имен.Что вы создаете так:

 Imports Excel = Microsoft.Office.Interop.Excel

Теперь вы можете без проблем использовать Excel.Application .

VB.NET также разрешает это:

 Imports Microsoft.Office.Interop

Но это не работает в C #, псевдоним пространства имен создает более переносимый код.Не уверен, что это вообще важно.

1 голос
/ 03 марта 2012

Использование Direct Excel и других библиотек автоматизации делопроизводства требует установки полного продукта на компьютер, на котором выполняется ваш код. Попробуйте использовать NPOI или другую библиотеку автоматизации Excel, чтобы выполнить то же самое, не устанавливая офисный пакет.

Установка Office на сервер, как правило, не рекомендуется, и даже если вы работаете в среде рабочего стола конечного клиента, вам придется беспокоиться о версии установленного Office и других переменных конфигурации клиента для успешной установки. выполнение каждый раз.

Если вы настаиваете на пути, который вы выбрали изначально, вам нужно захватить ссылку либо на работающий в данный момент экземпляр приложения Excel (GetObject), либо создать его для использования самостоятельно (CreateObject), например так:

 Set oXL = CreateObject("Excel.Application")
 oXL.Visible = True
0 голосов
/ 08 марта 2013

Вот статья. Он суммирует использование Excel из VS2010. Существует также пример создания в VS2010. образец работает

http://checktechno.blogspot.com/2013/01/all-you-need-to-know-with-visual-basic.html

Вам также необходимо убедиться, что на компьютере правильно установлен Excel. У вас есть Excel 2010 Starter или обычная версия?

Как сказал Тахбаза, если CreateObject не работает, это означает, что что-то не так на этом ПК.

...