1

如何从组合框中打开 Excel 工作簿?

我正在使用以下代码用 excel 文件名填充组合框,

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

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

4

3 回答 3

2
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
于 2012-12-22T07:16:52.890 回答
0

尝试使用

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

关于按钮点击事件

于 2012-12-22T06:54:28.850 回答
0

您需要处理一个事件来对用户的选择做出反应:要么更改选择中的选择,ComboBox要么(更好地)Button单击。在您的事件处理程序中,您可以从以下位置检索文件名ComboBox

string filename = ComboBox1.SelectedItem.ToString()

一旦你有了文件名,你就可以打开文件了,虽然你如何做这将取决于你想用它做什么。这个答案有一些关于在 VB.NET 中打开 Excel 文件的信息。

于 2012-12-22T06:57:33.797 回答