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ů.
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()
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
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