シートの一覧を取得する

よく使いそうなので載せておきます

サンプル

指定されたファイルのシート一覧を取得して、コンボボックスにセットします。


    Dim dtSheets As DataTable = Nothing

    Private Sub frmXlsCreator6_SheetsCount_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

        Edit1.Text = My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\vbnetdb_ExcelCreatorSample.xls"

    End Sub

    Private Sub btnGetSheetName_Click(sender As System.Object, e As System.EventArgs) Handles btnGetSheetName.Click

        getSheetList(Edit1.Text)
        setSheetsCombo()

    End Sub
	
    ''' 
    ''' シート名を取得してデータテーブルにセットします
    ''' 
    ''' 
    Private Sub getSheetList(ExcelFileNmae As String)
        Try
            'とりあえずDataTableにセットするため、DataTableの用意
            dtSheets = New DataTable
            dtSheets.Columns.Add("SheetNo", GetType(Integer))
            dtSheets.Columns.Add("SheetName", GetType(String))

            'ExcelCreator でファイルを開きます
            XlsCr1.OpenBook(ExcelFileNmae, "")

            'シート名を取得してDataTableに入れておきます。
            For i As Integer = 0 To XlsCr1.SheetCount - 1
                Dim drow As DataRow = dtSheets.NewRow
                drow.Item("SheetNo") = i
                drow.Item("SheetName") = XlsCr1.SheetName2(i).TrimEnd
                dtSheets.Rows.Add(drow)
            Next

            'Excelファイルを閉じます。
            XlsCr1.CloseBook(False)

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    ''' 
    ''' シート名コンボボックスにセットします
    ''' 
    ''' 
    Private Sub setSheetsCombo()
        Try
            If Not IsNothing(dtSheets) Then

                Combo1.Items.Clear()

                For Each drow As DataRow In dtSheets.Rows
                    Combo1.Items.Add(drow.Item("SheetName"))
                Next

                Combo1.SelectedIndex = 0

            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

<画面>
こんな感じです。
実行結果

履歴

2015/01/12
公開
Loading