Esta cuestión se puede solucionar de diversas maneras, por lo tanto te compartimos la que para nosotros es la resolución más completa.
Solución:
terminé usando esto:
using (OleDbConnection conn = new OleDbConnection(connString))
conn.Open();
dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] null, null, null, "TABLE" );
Sheet1= dtSchema.Rows[0].Field("TABLE_NAME");
OleDbConnection oconn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="Path"; Extended Properties=Excel 12.0;Persist Security Info=False;");
oconn.Open();
myCommand.Connection = oconn;
DataTable dbSchema = oconn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (dbSchema == null || dbSchema.Rows.Count < 1)
throw new Exception("Error: Could not determine the name of the first worksheet.");
string firstSheetName = dbSchema.Rows[0]["TABLE_NAME"].ToString();
Este código ha funcionado bien donde he usado la cuadrícula de datos "DataGridView1" para cargar todo el contenido de la hoja
Dim MyConnection As System.Data.OleDb.OleDbConnection
Dim DtSet As System.Data.DataSet : Dim filteext As String = ""
''check for the file type
If IO.Path.GetExtension(fileName) = "xls" Then
filteext = "Excel 8.0"
ElseIf IO.Path.GetExtension(fileName) = ".xlsx" Then
filteext = "Excel 12.0"
End If
''open connection
MyConnection = New System.Data.OleDb.OleDbConnection _
("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & fileName & "';Extended Properties=" & filteext & ";")
MyConnection.Open()
Dim myTableName = MyConnection.GetSchema("Tables").Rows(0)("TABLE_NAME")
Dim MyCommand As OleDbDataAdapter = New OleDbDataAdapter(String.Format("SELECT * FROM [0]", myTableName), MyConnection)
MyCommand.TableMappings.Add("Table", "TestTable")
DtSet = New System.Data.DataSet
MyCommand.Fill(DtSet)
DataGridView1.DataSource = DtSet.Tables(0)
'DtSet.DataSetName.
MyConnection.Close()
Si te ha resultado útil este artículo, sería de mucha ayuda si lo compartes con otros programadores de esta forma contrubuyes a extender esta información.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)