Snippet

Zobrazení listu Excelu pomocí OleDb

Přidáno: 15.6.2009       Kategorie: VB.NET - Databáze       Autor: Mirka Knížková

Přiložený kód je syrový, neobsahuje žádnou okolní omáčku (výběr souboru, ošetření chyb, close apod.). Z poznámek by mělo být zřejmé, co dělá.
Dříve jsem používala COM rozhraní, ale narazila jsem na problém, že na "účetních počítadlech" jsem přečetla něco mezi pěti až dvaceti tisíci větami a pak mi Excel (!!! nedalo se to ošetřit !!!) hodil chybu "DisconnectedContext".
Program předpokládá, že v 1.řádku jsou hlavičky sloupců.

' 1. otevření excelu
        Dim ExcelFileName as String = "c:\myExcel.xls"
        Dim ExcelString as String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ExcelFileName & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
        Dim ExcelConn As New OleDb.OleDbConnection(ExcelString)
        ExcelConn.Open()

' 2. Seznam listů a jejich zobrazení v ComboBoxExcel
        Dim ExcelDataTable As DataTable = New DataTable
        ExcelDataTable = ExcelConn.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, Nothing)

        Me.ComboBoxExcel.Items.Clear()
        Dim row As DataRow
        For Each row In ExcelDataTable.Rows
            Me.ComboBoxExcel.Items.Add(row("TABLE_NAME").Replace("$", ""))
        Next

' 3. Zobrazení dat vybraného listu (z ComboBoxExcel) v Datagridview1

        Dim ExcelDataAdapter As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter
        Dim ExcelDataTable As DataTable = New DataTable
        ExcelDataAdapter.SelectCommand = New OleDb.OleDbCommand("SELECT * FROM [" & Me.ComboBoxExcel.Text & "$]", ExcelConn)

        ExcelDataAdapter.Fill(ExcelDataTable)
        Me.DataGridView1.DataSource = ExcelDataTable 
 

VBNET.CZ | © 2007 Tomáš Herceg, Tomáš Jecha | Kopírování a přejímání jakéhokoliv obsahu z tohoto webu je bez písemného svolení autorů zakázáno.