открыть файл Excel без указания полного пути в VB.Net - PullRequest
0 голосов
/ 29 марта 2020

У меня ошибка при попытке открыть два файла Excel с указанием только их имен, а не полного пути (ошибка: файл не существует), оба файла находятся в той же папке, что и проект (Debug). Я пытаюсь не использовать путь stati c, поэтому при смене ноутбука проект всегда будет работать. Это код, который я использую. Спасибо за вашу помощь

Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet

    xlApp = New Excel.Application
    xlBook = xlApp.Workbooks.Open(Filename:="c:\EMP_.xlsx", IgnoreReadOnlyRecommended:=True, ReadOnly:=False, Editable:=True)
    xlSheet = xlBook.Worksheets(1)
    If DataGridView1.DataSource IsNot Nothing Then
        Dim i, j As Integer
        For i = 1 To DataGridView1.RowCount - 1
            For j = 1 To DataGridView1.ColumnCount
                xlSheet.Cells(i + 1, j) = DataGridView1.Rows(i - 1).Cells(j - 1).Value
            Next
        Next
        xlApp.Visible = True
        xlApp.UserControl = True
        xlApp.Quit()
        xlApp = Nothing
    Else
        MsgBox("Le tableau est vide")
    End If

Ответы [ 2 ]

0 голосов
/ 29 марта 2020

Согласно комментарию Джими, что-то вроде этого будет читать xlsx, который находится рядом с exe:

Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "emp_.xlsx")
Path.Combine(Application.StartupPath, "emp_.xlsx")

Всегда используйте Path.Combine для объединения путей, а не объединения строк


Вы спрашивали о переносе приложения на другой P C:

  • Новый p c НЕ требует установки Vsual Studio - Visual Studio создает автономный EXE-файл, который будет работать без VS
  • В новом P C БУДУТ установлена ​​соответствующая версия. Net Framework. Большинство ПК Windows 10 будут соответствовать этому требованию, но пользователи увидят сообщение, в котором им предлагается установить его, если не
  • . Для нового P C потребуется установить Excel. Согласно моему комментарию, если вы этого не хотите или не можете этого гарантировать (оплата офисной лицензии за простое чтение файла Excel стоит дорого и не нужна), вы должны использовать драйвер ACE или EPPlus для чтения вашего Excel; ни один не нуждается в Excel, и оба свободны
0 голосов
/ 29 марта 2020

Используйте OpenFileDialog, чтобы показать пользовательский интерфейс, который вы можете выбрать, какой файл Excel вы хотите открыть. Они просты в использовании:

Dim ofd as New OpenFileDialog

Dim result = ofd.ShowDialog

If result <> DialogResult.OK Then Return 'if the user cancels

xlApp.Workbooks.Open(Filename:= ofd.Filename ...
...