Проверка установлен или нет EXCEL - Visual Basic .NET
Формулировка задачи:
Всем добрый вечер! Есть программа в которой по нажатию на одну из кнопок запускается EXCEL файл. Как сделать проверку установлен или нет на компьютер EXCEL. Если установлен, то открываем файл, если нет - выходит сообщение что EXCEL'я НЕТ!
Но при установленном на моем компьютере OFFICE и EXCEL в частности, выкидывает на строчку
MsgBox("На этом компьютере не установлен пакет MS Office")
Но данный код выводит сообщение о вопросе ЕСТЬ ЛИ УСТАНОВЛЕННЫЙ ОФИС. ЕСЛИ ДА, ТО ОТКРЫВАЕТ ФАЙЛ, ЕСЛИ НЕТ ТО ПРОСТО ЗАКРЫВАЕТ СООБЩЕНИЕ ВЫВОДЯ ГЛАВНУЮ ФОРМУ.
Но я хочу сделать это более автоматизированно и без помощью пользователя.
Нашел вот такой код:
Листинг программы
- Dim xlApp As Object
- Try
- xlApp = CreateObject("Excel.Application")
- Process.Start(Application.StartupPath & "\Наклейки.xlsm")
- Catch ex As SystemException
- MsgBox("На этом компьютере не установлен пакет MS Office")
- End Try
Изначально был вот такой код:
Листинг программы
- Dim msg As String
- Dim title As String
- Dim style As MsgBoxStyle
- Dim response As MsgBoxResult
- msg = "Для запуска Наклеек нужен установленный пакет MS Office. Пакет MS Office установлен?"
- style = MsgBoxStyle.DefaultButton2 Or _
- MsgBoxStyle.Information Or MsgBoxStyle.YesNo
- title = "Предупреждение"
- response = MsgBox(msg, style, title)
- If response = MsgBoxResult.Yes Then
- Process.Start(Application.StartupPath & "\Наклейки.xlsm")
- Me.Close()
- Else
- Me.Show()
- End If
Решение задачи: «Проверка установлен или нет EXCEL»
textual
Листинг программы
- Dim xlApp As Object = Nothing
- Try
- Dim xlType As Type = Type.GetTypeFromProgID("Excel.Application")
- If xlType Is Nothing Then
- Throw New Exception("Microsoft Excel не найден в системе")
- End If
- Try
- xlApp = xlType.InvokeMember(Nothing, Reflection.BindingFlags.CreateInstance, Nothing, Nothing, Nothing)
- Catch ex As Exception
- Throw New Exception("Ошибка при запуске Microsoft Excel", ex)
- End Try
- If Not IO.File.Exists(Application.StartupPath & "\Наклейки.xlsm") Then
- Throw New Exception("Файл не найден")
- End If
- Try
- xlApp.WorkBooks.Open(Application.StartupPath & "\Наклейки.xlsm")
- Catch ex As Exception
- Throw New Exception("Что-то пошло не так при загрузке файла", ex)
- End Try
- xlApp.Visible = True
- Catch ex As Exception
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error) 'MessageBox.Show(ex.ToString() & CStr(If((Not ex.InnerException Is Nothing), vbNewLine & ex.InnerException.ToString(), String.Empty)), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error)
- If Not xlApp Is Nothing Then
- Try
- xlApp.Quit()
- System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)
- xlApp = Nothing
- GC.Collect()
- Catch
- End Try
- End If
- End Try
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д