Visual Basic.NET - Pasar Txt a excel desde VB.net.Se pierde decimal

   
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Pasar Txt a excel desde VB.net.Se pierde decima

Publicado por Wilson (1 intervención) el 16/01/2008 22:43:58
Hola amigo Rober, prueba colocando esta instrucción para dar formato a la columna donde descargas los valores para que los lea exel como dato numerico.

Hoja.Range("D1").EntireColumn.NumberFormat = "#.###.##0,00"

Nota: D1 seria la columna donde descargas los valores

Atentamente. Wilson
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

este podria ser una forma

Publicado por Christian (1 intervención) el 22/06/2008 18:12:48
m_Excel.Worksheets("Hoja1").cells(12 + i, 7).value = Format(CDec(DGV.Item(3, i).Value.ToString), "c")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar