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

Leer celdas determinadas en un excel

Estas en el tema de Leer celdas determinadas en un excel en el foro de ASPX (.net) en Foros del Web. Buenos dias, queria saber si alguien sabe como podria leer unas celdas determinadas en un excel mediante codigo asp.net Hasta ahora, he podido leer un ...
  #1 (permalink)  
Antiguo 30/06/2008, 05:57
 
Fecha de Ingreso: mayo-2003
Mensajes: 70
Antigüedad: 21 años
Puntos: 0
Leer celdas determinadas en un excel

Buenos dias,

queria saber si alguien sabe como podria leer unas celdas determinadas en un excel mediante codigo asp.net

Hasta ahora, he podido leer un excel completo con una fila de cabecera pero ahora necesito leer otro, pero solo para obtener los datos desde la celda a4 hasta la d7, es decir, olvidandome de los datos de las filas anteriores y sin cabecera. Os pongo una muestra del archivo:

(A1)CUENTA (B1)CENT.COSTE (C1)DEBE (D1)HABER

(A4)60108000 (B4)317012 (C4)259.403,20 (D4)25
(A5)22000100 (B5)P317019 (C5)4.571,97 (D5)20
(A6)50100000 (B6)P316407 (C6)4.571,97 (D6)15
(A7)50100000 (B7)P31600 (C7)1.271,89 (D7)50


Olvidandome de los datos de las filas anteriores.
El codigo que suelo utilizar para leer todo es este:
Código:
Dim excelConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=" & Server.MapPath("~/App_Data/" & Request.QueryString("whatfile") & "") & ";" & _
          "Extended Properties=""Excel 8.0;HDR=Yes"""

 
        ' Create Connection to Excel Workbook 
        Using connection As New OleDbConnection(excelConnectionString)
            Dim command As New OleDbCommand("Select Numerito,Dia,Dist,Type,Surface,Period FROM [DATA$]", connection)
            ' Dim command As New OleDbCommand("Select campo1 FROM [DATA$]", connection)

            connection.Open()

            ' Create DbDataReader to Data Worksheet 
            Using dr As DbDataReader = command.ExecuteReader()
                ' SQL Server Connection String 
                Dim sqlConnectionString As String = "Data Source=xxx"
                While dr.Read()

                    campo1 = Left(dr("Numerito") & blancos, 30)
                    campo2 = Left(dr("Dia") & blancos, 30)
                    campo3 = Left(dr("Dist") & blancos, 30)
                    campo4 = Left(dr("Type") & blancos, 30)
                    campo5 = Left(dr("Surface") & blancos, 30)
                    campo6 = Left(dr("Period") & blancos, 30)

                    'Aqui hago el resto de operaciones
                   
              End While
                
                
            End Using
        End Using
pero ahora lo que necesito es leer solo parte del archivo, como decia anteriormente desde la A4 a la D7.

Alguien me puede echar una mano.
Gracias.
  #2 (permalink)  
Antiguo 01/07/2008, 05:10
 
Fecha de Ingreso: diciembre-2007
Mensajes: 100
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Leer celdas determinadas en un excel

Veo que accedes a él midiante conexion para verlo como una BD tipo ADO.

También puedes trabajar contra Excel mediante objetos COM para verlo como una aplicación y no como acceso a datos.

Nunca he hecho exactametne lo que tu propones pero creo que accediendo así sí que es posible leer el valor de una celda determinada.

Si pruebas de esta manera o lo consiges como lo estabas intentando cuéntanos como ha ido.

Suerte
  #3 (permalink)  
Antiguo 01/07/2008, 06:46
 
Fecha de Ingreso: mayo-2003
Mensajes: 70
Antigüedad: 21 años
Puntos: 0
Respuesta: Leer celdas determinadas en un excel

Hola de nuevo,
me podrías por favor indicar como hacerlo mediante objetos COM, soy nuevo en asp.net y no tengo demasiada idea. Si pudieses echarme una mano te lo agradeceria.

Gracias.
  #4 (permalink)  
Antiguo 02/07/2008, 03:45
 
Fecha de Ingreso: mayo-2003
Mensajes: 70
Antigüedad: 21 años
Puntos: 0
Respuesta: Leer celdas determinadas en un excel

Por favor, alguien me puede pasar un codigo "para tontos" de como leer un excel mediante objetos COM en asp.net? Por mas que busco no encuentro nada simple, todos son referencias a preguntas mas avanzadas.

Gracias.
  #5 (permalink)  
Antiguo 02/07/2008, 03:56
 
Fecha de Ingreso: diciembre-2007
Mensajes: 100
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Leer celdas determinadas en un excel

Es la misma respuesta que he dado otro post, solucionando un problema de este tipo de objetos:

En VS ir a Websites/Proyecto -> Add References -> Pestañ COM y ahi elejir
Microsoft Ofice Interop
Microsoft Excel 11.0 Object Library


Una vez que ves todos los componentes COM, tienes que agregar:
1) Microsoft Office Interop 11.0
2) Microsoft Excel 11.0

Tras haber agregado las referencias en el código desde donde quieres trabajar con Excel debes agregar los siguientes Imports:

1) Imports System.Runtime.InteropServices.Marshal
2) Imports Microsoft.Office.Interop

A partir de ahora puedes trabajar con Excel sin problemas.

El modo de trabajo básicamente consiste en crear un objeto que de algún modo hará de aplicación Excel

Dim oXL As Excel.Application

Un Libro de Excel
Dim oWB As Excel.Workbook

Y una oja del libro
Dim oSheet As Excel.Worksheet

Una vez declarados los tres objetos metemos la hoja dentro del libro, y el libro dentro de la aplicación Excel (como si trabajásemos con el Excel de verdad...)

Inicializar Excel y obtener un objeto de Aplicacion
oXL = CreateObject("Excel.Application")
oXL.Visible = True

' Obtener nuevo libro (workbook)
oWB = oXL.Workbooks.Add

' Activar la hoja del libro
oSheet = oWB.ActiveSheet

Después de todo eso aplicamos métodos a la hoja para escribirla, cambiarle los tipos de letra... etc
' Escribir titulo del informe
oSheet.Cells(1, 1).Value = "Estoy escribiendo en una celda de Excel "
oSheet.Cells(1, 2).Value = "Estoy escribiendo en la siguiente celda "

' Poner un rango en negrita...
oSheet.Range("A1", "D1").Font.Bold = True

Este ejemplo es para escribir un documento. Supongo queal crear la aplicación si en vez de "NewExcelAplication" le pasas tu fichero excel, abrirá ese en vez de uno nuevo:
oXL = CreateObject("C\:UnExcel.xls")

Si no es ese método para abrir uno existente seguro que hay uno, yo he trabajado con plantillas pero ahora mismo no encuentro el código exacto.

De todos modos te dejo un link que hablan algo sobre ello:
http://www.c-sharpcorner.com/UploadFile/mgold/HowtoOepnandReadanExcelSpreadsheetinaListViewin.NE T11282005034134AM/HowtoOepnandReadanExcelSpreadsheetinaListViewin.NE T.aspx

Si haces en google la siguietne búsqueda "Accessing Excel from .NET" entocntrarás bastantes ejemplos.

Espero que te haya servido de algo, y si tienes alguna cosa mas que pregutnar, para eso estamos.
  #6 (permalink)  
Antiguo 02/07/2008, 05:29
 
Fecha de Ingreso: diciembre-2007
Mensajes: 100
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Leer celdas determinadas en un excel

Hola de nuevo,

Acabo de encontrar un par de ejemplos sobre cómo leer. Para leer una celda concreta debes hacer esto:

Dim oXL As Excel.Application
oXL = CreateObject("Excel.Application")
oXL.Visible = False
oWB = oXL.Workbooks.Open(btnExaminar.Value)
oSheet = oWB.ActiveSheet

' poner en un TextBox el valor de una celda
txtValorColumna1.Text = oSheet.Cells(3, 1).value
txtValorColumna2.Text = oSheet.Cells(3, 2).value
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 06:57.