cargar hoja de excel

17/12/2005 - 00:49 por Enrique Rodríguez | Informe spam
Hola a todos.

Tengo una duda a ver si alguien sabe como leer una hoja de excel pero
sabiendo que el nombre de la hoja puede variar, actualmente tengo una pagina
que carga el contenido de una hoja de excel en un grid pero en ese caso la
hoja siempre se llama igual y lo hago de esta manera:

oCmd.CommandText = "SELECT * FROM [gstat$A2:F26]"

Ahora tengo la necesidad de cargar otros archivos pero el nombre de la hoja
varia.

Hay alguna forma de hacerlo sin tener que conocer el nombre?

Saludos y gracias

Enrique Rodriguez

Preguntas similare

Leer las respuestas

#1 SoftJaén
17/12/2005 - 10:24 | Informe spam
"Enrique Rodríguez" preguntó:

como leer una hoja de excel pero sabiendo que el nombre de la
hoja puede variar,



Hola, Enrique:

A la consulta SQL de selección, siempre le puedes añadir el valor de una
variable alfanumérica, que incluya el nombre de la hoja y el rango de celdas
que deseas leer:

Dim nombreRango As String

nombreRango = "[NombreHoja$A2:F26]"
oCmd.CommandText = "SELECT * FROM " & nombreRango

Hay alguna forma de hacerlo sin tener que conocer el nombre?




No entiendo muy bien la pregunta. El nombre de la hoja de cálculo, o del
rango de celdas que deseas consultar, tendrás que conocerlo de antemano para
pasárselo a la consulta SQL de selección, y se comprende que deberá de
existir en el libro de Excel. La única manera que conozco es como te he
indicado anteriormente: mediante una variable alfanumérica.

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#2 Enrique Rodríguez
04/02/2006 - 01:39 | Informe spam
Hola Enrique.

Si lo hago de esa manera me marca el error de que Corchetes no válidos en el
nombre ' cts02-cc1097$ '.

Te muestro el codigo que estoy utilizando.

Private Sub cmdCargarGrid_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdCargarGrid.Click

'Declaracion de variables y objetos

Dim Destino As String = Server.MapPath(System.DBNull.Value.ToString()) &
"\Conteos\Excel\OBSERVATORIO\" & Path.GetFileName(File1.PostedFile.FileName)

Dim strConnSql As String = "Server=Enrique-rdz;initial
catalog=Sintram;Password=safeuser;User ID=safeuser;"

Dim Hoja As String =
Path.GetFileNameWithoutExtension(File1.PostedFile.FileName) & "$"

Dim oConn As New OleDbConnection

Dim oCmd As New OleDbCommand

Dim oDa As New OleDbDataAdapter

Dim oDs As New DataSet

Dim Prueba As String = "[ " & Hoja & " ]"

'Dim com As New SqlCommand("insert_CObs", oConnSql)

File1.PostedFile.SaveAs(Destino)

oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _

Destino & ";Extended Properties=""Excel 8.0;HDR=No;IMEX=2"""

'"HDR=Yes;" indicates that the first row contains columnnames, not data

'"IMEX=1;" tells the driver to always read "intermixed" data columns as text

oConn.Open()

oCmd.CommandText = "SELECT F1 As Campo1, F2 As Campo2, F3 As Campo3 FROM" &
Prueba

oCmd.Connection = oConn

oDa.SelectCommand = oCmd

oDa.Fill(oDs)

DataGrid1.DataSource = oDs.Tables(0).DefaultView

DataGrid1.DataBind()

Mensaje.Text = Prueba

oConn.Close()

End Sub

"SoftJaén" escribió en el mensaje
news:
"Enrique Rodríguez" preguntó:

como leer una hoja de excel pero sabiendo que el nombre de la
hoja puede variar,



Hola, Enrique:

A la consulta SQL de selección, siempre le puedes añadir el valor de una
variable alfanumérica, que incluya el nombre de la hoja y el rango de
celdas que deseas leer:

Dim nombreRango As String

nombreRango = "[NombreHoja$A2:F26]"
oCmd.CommandText = "SELECT * FROM " & nombreRango

Hay alguna forma de hacerlo sin tener que conocer el nombre?




No entiendo muy bien la pregunta. El nombre de la hoja de cálculo, o del
rango de celdas que deseas consultar, tendrás que conocerlo de antemano
para pasárselo a la consulta SQL de selección, y se comprende que deberá
de existir en el libro de Excel. La única manera que conozco es como te he
indicado anteriormente: mediante una variable alfanumérica.

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o sugerido en el presente mensaje.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida