Almacenamiento de valores numéricos en una hoja de Excel

Me enfrenta un problema al save valores numéricos en una hoja de Excel. Cuando hago una consulta de inserción o actualización que involucra valores numéricos, VB.NET se transfiere a la hoja como si fueran text … lo cual no quiero. La celda donde inserto el número con vb.net se resalta con un cuadro verde que indica que el valor se almacena como text y no como un número:

enter image description here

Traté de insertlo como un número con la siguiente línea, pero aún así lo guardo como tal:

command.Parameters.Add("?", OleDbType.Numeric).Value = Val(dato) 

¿Cómo podría hacer que vb.net lo guarde como número y no como Texto?

EDITAR: Alguien marque mi pregunta como posible duplicado. La otra pregunta vinculada utiliza COM / INTEROP … No la estoy usando, estoy trabajando con OLE DB. Solo quiero saber si hay alguna manera de almacenar un número en un Excel sin savelo como text.

Siempre puedes tratar de formatear las celdas

  Dim formatRange As Excel.Range formatRange = xlWorkSheet.Range("a1", "b1") formatRange.NumberFormat = "#,###,###" xlWorkSheet.Cells(1, 1) = "1234567890" 

o

  Dim shXL As Excel.Worksheet Dim temp As String temp = "B" & (VariableYouAreEntering.Count + 1) With shXL.Range("B1", temp) .NumberFormat = "000000" 'or however you want to format it End With 

Intenta convertir a doble:

 CDbl(vaL(dato)) 

o simplemente CDbl(dato) – después de la sugerencia de comentario.

Aquí está el enlace: Convertir cadenas en dobles – VB. Hay otras forms en que puede intentarlo.

Intentaré esto

 Dim dato As String = "123.45" Dim value As Double If Double.TryParse(dato, value) Then command.Parameters.Add("?", OleDbType.Numeric).Value = value Else command.Parameters.Add("?", OleDbType.Numeric).Value = 0 End If 

Además, probaría command.Parameters.AddWithValue ("?", Value)

¿Compartirías tu command CommandText con nosotros?