Foros del Web » Programando para Internet » ASPX (.net) »

[SOLUCIONADO] Importar tabla de excel completa a un gridview.

Estas en el tema de Importar tabla de excel completa a un gridview. en el foro de ASPX (.net) en Foros del Web. Estoy guardando datos de un archivo de excel en mi base de datos y para cerciorarme que es correcta antes la carga a un Gridview ...
  #1 (permalink)  
Antiguo 11/11/2013, 10:45
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 11 años, 7 meses
Puntos: 5
Importar tabla de excel completa a un gridview.

Estoy guardando datos de un archivo de excel en mi base de datos y para cerciorarme que es correcta antes la carga a un Gridview .

La programación esta hecha de la siguiente manera

Código:
    Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_mostrar0.Click

        Dim rutaArchivo As String = ddl_cargar_nombres.SelectedValue
        Dim dsExcel As New DataSet
        Dim cmdselect As New OleDbCommand

        Try

            Dim cadconex As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & rutaArchivo & " ;Persist Security Info=False;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1""

            Dim conorigen As OleDbConnection
            conorigen = New OleDbConnection(cadconex)

            conorigen.Open()

            Dim adaptador As New OleDbDataAdapter
            Dim nombre_hoja As String
            nombre_hoja = txt_hoja.Text

            cmdselect.Connection = conorigen
            cmdselect.CommandText = "select * from [" & nombre_hoja & "$] where concepto <>''"
            adaptador.SelectCommand = cmdselect
            adaptador.Fill(dsExcel)

            gv_Excel.DataSource = dsExcel
            gv_Excel.DataBind()

            conorigen.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try




    End Sub
pero cuando veo en mi base de datos noto que no me esta trayendo todo el contenido de una celda.

Por ejemplo el contenido real es:
Cita:
Suministro de tubería de polietileno de alta densidad corrugado para alcantarillado sanitario que cumpla con la norma de hermeticidad NOM-001-CONGUA-2011 y NMX-E-216-1994-SCFI. Incluye: fletes, acarreos y maniobras locales puesto L.A.B. en el almacén de la obra en la localidad, uniones en parte proporcional con 380 mm de diámetro.
y lo que me trae es:
Cita:
Suministro de tubería de polietileno de alta densidad corrugado para alcantarillado sanitario que cumpla con la norma de hermeticidad NOM-001-CONGUA-2011 y NMX-E-216-1994-SCFI. Incluye: fletes, acarreos y maniobras locales puesto L.A.B. en el almacén de l

Que puedo hacer para que si me cargue todo el contenido.
  #2 (permalink)  
Antiguo 27/11/2013, 16:19
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años, 8 meses
Puntos: 30
Respuesta: Importar tabla de excel completa a un gridview.

Hola,

Mas que problema del sistema diria que es problema de bases de datos. Revisa el tamaño del campo en la base de datos (por ejemplo nvarchar(32) ) y aumentalo, puedes usar MAX. Normalmente cuando el texto a insertar es mayor al tamaño del campo se trunca, de ahi que lo ves cortado.

Saludos,
Jason Ulloa
MCC
__________________
http://geekswithblogs.net/jaullo/Default.aspx
Si te he ayudado regalame Karma positivo!!!
  #3 (permalink)  
Antiguo 27/11/2013, 16:34
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 11 años, 7 meses
Puntos: 5
Respuesta: Importar tabla de excel completa a un gridview.

No de hecho el problema no es por dicseño de la base de datos. Es al momento en que lo carga de Excel al gridview. Me puse a imprimir el datatable, datareader, dataset para ver si era alguno de estos objetos y en efectivo cuando los imprimo eso es lo que pasa desde ahi no los carga todos.
  #4 (permalink)  
Antiguo 30/11/2013, 09:12
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 11 años, 7 meses
Puntos: 5
Respuesta: Importar tabla de excel completa a un gridview.

Esta es la solución.

Código VISUAL:
Ver original
  1. Dim rutaArchivo As String = ddl_cargar_nombres.SelectedValue
  2.         Dim Obj_Excel As Object
  3.         Dim Obj_Libro As Object
  4.         Dim Obj_Hoja As Object
  5.         Dim dtExcel As New DataTable
  6.  
  7.         With dtExcel.Columns
  8.             .Add("codigo", GetType(String))
  9.             .Add("presupuesto", GetType(String))
  10.             .Add("concepto", GetType(String))
  11.             .Add("unidad", GetType(String))
  12.             .Add("cantidad", GetType(String))
  13.             .Add("unitario", GetType(String))
  14.             .Add("importe", GetType(String))
  15.         End With
  16.  
  17.         ' -- Crear nueva instancia de Excel  
  18.         Obj_Excel = CreateObject("Excel.Application")
  19.         ' -- Agregar nuevo libro
  20.         Obj_Libro = Obj_Excel.workbooks.open(rutaArchivo)
  21.         ' -- Referencia a la Hoja activa (la que añade por defecto Excel )
  22.         Obj_Hoja = Obj_Excel.ActiveSheet
  23.  
  24.         Dim fila As Integer = 2
  25.  
  26.         Dim a As Integer = 0
  27.         Dim b As Integer = 0
  28.  
  29.         Do While (Obj_Hoja.cells(fila, 1).value <> "")
  30.             dtExcel.Rows.Add(Obj_Hoja.cells(fila, 1).value, Obj_Hoja.cells(fila, 2).value, Obj_Hoja.cells(fila, 3).value,
  31.                              Obj_Hoja.cells(fila, 4).value, Obj_Hoja.cells(fila, 5).value, Obj_Hoja.cells(fila, 6).value,
  32.                              Obj_Hoja.cells(fila, 7).value)
  33.             fila += 1
  34.         Loop
  35.         gv_Excel.DataSource = dtExcel
  36.         gv_Excel.DataBind()

Etiquetas: completa, excel, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:29.