Pasar Txt a excel desde VB.net.Se pierde decimal
Publicado por Rober (1 intervención) el 24/12/2007 00:36:28
Hola a todos , espero que alguien pueda ayudarme:
Necesito pegar un archivo de texto con varias lineas de valores numéricos separados por tabulación, a partir de una celda inicial (celda_ini) en excel.
Lo hago cargando el archivo de texto linea a linea, separando con el método Split cada dato de la linea (por tabulación) e introduciendo su valor en la celda correspondiente en un bucle.
El problema es que al pegar esos valores en la celda, se pierde el punto decimal en la mayor parte de los casos y no se a que puede deberse.
Es decir se pega en la celda 657235 donde debería poner 657.235 . Hay algun caso en el que si conserva el punto decimal (0.5336559) pero son pocos y dice excel que el numero de la celda tiene formato de texto. A alguien se le ocurre que puede pasar?.
Pongo la parte del código por si os puede servir:
Dim srLector As IO.StreamReader = New IO.StreamReader(RutaPerDisp)
Dim Linea As String
Dim valores As String()
Linea = srLector.ReadLine()
Do While Not (Linea Is Nothing)
valores = Linea.Split(vbTab)
For j = 0 To valores.Length - 1
valores(j) = Val(valores(j)) ' no se si es necesaria, el resultado es el mismo sin ella
valores(j) = CSng(valores(j)) ' no se si es necesaria, el resultado es el mismo sin ella
hoja.Range(celda_ini).Cells(i, j + 1).value = valores(j)
Next
Linea = srLector.ReadLine()
i = i + 1
Loop
srLector.Close() 'cierro el archivo
Muchas gracias por la ayuda
Necesito pegar un archivo de texto con varias lineas de valores numéricos separados por tabulación, a partir de una celda inicial (celda_ini) en excel.
Lo hago cargando el archivo de texto linea a linea, separando con el método Split cada dato de la linea (por tabulación) e introduciendo su valor en la celda correspondiente en un bucle.
El problema es que al pegar esos valores en la celda, se pierde el punto decimal en la mayor parte de los casos y no se a que puede deberse.
Es decir se pega en la celda 657235 donde debería poner 657.235 . Hay algun caso en el que si conserva el punto decimal (0.5336559) pero son pocos y dice excel que el numero de la celda tiene formato de texto. A alguien se le ocurre que puede pasar?.
Pongo la parte del código por si os puede servir:
Dim srLector As IO.StreamReader = New IO.StreamReader(RutaPerDisp)
Dim Linea As String
Dim valores As String()
Linea = srLector.ReadLine()
Do While Not (Linea Is Nothing)
valores = Linea.Split(vbTab)
For j = 0 To valores.Length - 1
valores(j) = Val(valores(j)) ' no se si es necesaria, el resultado es el mismo sin ella
valores(j) = CSng(valores(j)) ' no se si es necesaria, el resultado es el mismo sin ella
hoja.Range(celda_ini).Cells(i, j + 1).value = valores(j)
Next
Linea = srLector.ReadLine()
i = i + 1
Loop
srLector.Close() 'cierro el archivo
Muchas gracias por la ayuda
Valora esta pregunta


0