miércoles, 6 de abril de 2011

Leer Office Excel 2003,2007 con extensiones .xls;.xlsx;xlsb;xlsm en Vb.Net

La función tambien es aplicado para web.



'Función para mostrar el excel

Private Function MostrarDatExcel(ByVal RUTA As String, ByVal HOJA As String, ByVal WHERE As String) As DataTable
      Dim Dst As New DataSet
      Dim Coneccion As String = String.Empty
      Dim TABLE As DataTable
      Dim ru As New FileInfo(RUTA)
      Select Case ru.Extension
         Case ".xls"
            Coneccion = "Provider=Microsoft.Jet.Oledb.4.0; data source= " & RUTA & ";Extended properties=""Excel 8.0;hdr=yes;imex=1"""
         Case ".xlsx"
            Coneccion = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & RUTA & ";Extended Properties=""Excel 12.0 Xml;HDR=YES"""
         Case ".xlsb"
            Coneccion = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & RUTA & ";Extended Properties=""Excel 12.0;HDR=YES"""
         Case ".xlsm"
            Coneccion = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & RUTA & ";Extended Properties=""Excel 12.0 Macro;HDR=YES"""
      End Select
      Dim Cn As New OleDbConnection(Coneccion)
      Try
         Dst = New DataSet
         Dim Dap As New OleDbDataAdapter("Select * From [" & HOJA & "$]" & IIf(WHERE = String.Empty, "", WHERE), Cn)
         Cn.Open()
         Dap.Fill(Dst)
         Cn.Close()
         TABLE = Dst.Tables(0)
      Catch ex As Exception
         Cn.Close()
         MessageBox.Show(ex.Message, "Informa", MessageBoxButtons.OK, MessageBoxIcon.Information)
         TABLE = Nothing
      End Try
      Return TABLE
   End Function

'Llamar al excel

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim oExcel As New OpenFileDialog
      oExcel.Filter = "Excel 97-2003 Files|*.xls|Excel 2007 Files|*.xlsx|Excel xlsb|*.xlsb|Excel xlsm|*.xlsm|All Files|*.*"
      If oExcel.ShowDialog = Windows.Forms.DialogResult.OK Then
         TextBox1.Text = oExcel.FileName
      End If
   End Sub

'Mostrar el Datagridview

DataGridView1.DataSource = MostrarDatExcel(TextBox1.Text, TextBox2.Text, "")

DESCARGAR Codigo

LeerExcel.rar

Referencias
Imports System.Data.OleDb
Imports System.IO

sino tienes instalado el Office Excel 2007 descargar el siguiente componente AccessDatabaseEngine.exe(Controlador de 2007 Office system: Componentes de conectividad de datos) instalarlo en la pc cliente y sin necesidad de instalarse el office 2007 leera la extension .xlsx

http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891

Información general

Esta descarga instalará un conjunto de componentes que pueden utilizarse con otras aplicaciones que no son de Microsoft Office para leer datos de archivos de 2007 Office System, como archivos de Microsoft Office Access 2007 (.mdb y .accdb) y de Microsoft Office Excel 2007 (.xls, .xlsx y .xlsb). También es compatible la conectividad a archivos de texto y de Microsoft Windows SharePoint Services.

Los controladores ODBC y OLEDB se instalan con el objetivo de que los desarrolladores de aplicaciones puedan utilizarlos para desarrollar aplicaciones con conectividad a formatos de archivo de Office.

No hay comentarios.: