从combobox(VB.NET)打开Excel工作簿

如何从combobox打开Excel工作簿?

我正在使用下面的代码来填充excel文件名combobox,

Dim files() As String files = Directory.GetFiles("C:\Files\Folder", "*.xlsx", SearchOption.AllDirectories) For Each FileName As String In files ComboBox1.Items.Add(FileName.Substring(FileName.LastIndexOf("\") + 1, FileName.Length - FileName.LastIndexOf("\") - 1)) Next 

但我不知道如何打开选定的文件。

 Imports System Imports System.IO Imports System.Collections Public Class Form1 Private Const TargetDir = "C:\Files\Folder" Private FullFileList As List(Of String) Private Sub ProcessFile(ByVal fn As String) If Path.GetExtension(fn).ToLower = ".xlsx" Then FullFileList.Add(fn) ComboBox1.Items.Add(Path.GetFileName(fn)) End If End Sub Private Sub ProcessDirectory(ByVal targetDirectory As String) Dim fileEntries As String() = Directory.GetFiles(targetDirectory) Dim fileName As String For Each fileName In fileEntries ProcessFile(fileName) Next fileName Dim subdirectoryEntries As String() = Directory.GetDirectories(targetDirectory) Dim subdirectory As String For Each subdirectory In subdirectoryEntries ProcessDirectory(subdirectory) Next subdirectory End Sub Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load FullFileList = New List(Of String) ProcessDirectory(TargetDir) End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click If ComboBox1.SelectedIndex >= 0 Then Dim prc As New System.Diagnostics.Process Dim psi As New System.Diagnostics.ProcessStartInfo(FullFileList(ComboBox1.SelectedIndex)) psi.UseShellExecute = True psi.WindowStyle = ProcessWindowStyle.Normal prc.StartInfo = psi prc.Start() End If End Sub End Class 

您需要处理事件以对用户的select做出反应:更改ComboBox框中的select或(更好地) Button 。 在您的事件处理程序中,您可以从ComboBox检索文件名:

 string filename = ComboBox1.SelectedItem.ToString() 

一旦你有了文件名,你可以打开这个文件,但是如何做到这一点将取决于你想要做什么。 这个答案有一些在VB.NET中打开Excel文件的信息。

尝试使用

Process.start("excel "+ComboBox1.SelectedItem.ToString());

在buttonclick事件上