0

私は多くのフォームを含むいくつかのプロジェクトに取り組んでいます..各フォームで、以下のコードを使用してExcelをデータグリッドにインポートする必要があります..各フォームのコードを複製したくない..モジュールを作成して呼び出すことができるようにする予定ですExcel データを datagrid にインポートする各フォームの関数。

   Try
            With Form1.OpenFileDialog1
                .Title = "Please open the STM_Ticket_Template"
                .Filter = "Excel Files | *.xlsx"
                If .ShowDialog = Windows.Forms.DialogResult.OK Then
                    Dim fn1 As String = .FileName.ToString
                    Dim oledbCon As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + fn1 + ";Extended Properties=Excel 12.0;"
                    conDB = New OleDb.OleDbConnection(oledbCon)
                    adap = New OleDb.OleDbDataAdapter("Select * From [SAM_TICKETS$]", conDB)
                    adap.TableMappings.Add("Table", "Excel")
                    dSet = New DataSet
                    adap.Fill(dSet)
                    Me.DataGridView1.DataSource = dSet.Tables(0)
                End If
            End With
            Dim msg As String = MsgBox("Template successfully loaded", MsgBoxStyle.Information, "Creation Template")
        Catch ex As Exception
            MsgBox("Load Error..." + Environment.NewLine + ex.ToString)
        End Try 

これを行う方法はありますか?

任意の提案をいただければ幸いです:)

4

4 に答える 4

1

あなたは機能を持っているかもしれません:

Imports System.Windows.Forms


Public Function GetExcelTable() AS DataTable
    Dim od As OpenFileDialog = new OpenFileDialog
    od.ShowDialog
    try
        With od
                .Title = "Please open the STM_Ticket_Template"
                .Filter = "Excel Files | *.xlsx"
                If .ShowDialog = Windows.Forms.DialogResult.OK Then
                    Dim fn1 As String = .FileName.ToString
                    Dim oledbCon As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + fn1 + ";Extended Properties=Excel 12.0;"
                    conDB = New OleDb.OleDbConnection(oledbCon)
                    adap = New OleDb.OleDbDataAdapter("Select * From [SAM_TICKETS$]", conDB)
                    adap.TableMappings.Add("Table", "Excel")
                    dSet = New DataSet
                    adap.Fill(dSet)
                    Return dSet.Tables(0)
                End If
            End With
            Dim msg As String = MsgBox("Template successfully loaded", MsgBoxStyle.Information, "Creation Template")
        Catch ex As Exception
            MsgBox("Load Error..." + Environment.NewLine + ex.ToString)
        End Try 
End Function

そしてそれを次のように呼び出します:

Me.DataGridView1.DataSource = GetExcelTable()
于 2013-08-02T13:12:59.583 に答える
0

これは、 VB .NET の標準モジュールに関するチュートリアルです。

これにより、Excel ロジックを 1 か所で作成し、複数のフォームから呼び出すことができます。

于 2013-08-02T13:15:04.687 に答える