none
Problema em conversão de texto para número no Excel RRS feed

  • Pergunta

  • Olá, não sei se aqui é o lugar correto para esta minha pergunta, se não, peço desculpas antecipadamente. O que está ocorrendo comigo é o seguinte: eu estou utilizando um programa que faz um sql em uma base de dados e exporta esses dados para uma planilha excel. Nessa planilha, eu preciso utilizar regras para colorir ou não certos valores. O que acontece é que eu não estou conseguindo utilizar regras, pois o meu excel não reconhece números de jeito nenhum. Ele entendo os números como texto. 

    Já classifiquei no excel a coluna como numbers, mas não adiantou. O erro que aparece no excel é o seguinte:

    "The number in this cell is formatted as text or is preceded by an apostrophe."

    Código aonde os dados são inseridos no excel: 

     Try
                    vxobExcelConn = New System.Data.OleDb.OleDbConnection( _
                      String.Format("Provider=Microsoft.JET.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES""", _
                    pxvaDiretorio & "\" & vxvaFileName & ".xls"))
    
                    vxobExcelConn.Open()
    
                    vxobExcelCmd = vxobExcelConn.CreateCommand()
                    vxobSQL = New StringBuilder
    
                    Dim count As Integer = 0
    
                    For Each row As DataRow In pxobDataSet.Tables(0).Rows
    
                        vxobSQL.Length = 0
    
                        vxobSQL.Append("insert into [OS_Chamados$A1:S] values (")
                        For i As Integer = 0 To pxobDataSet.Tables(0).Columns.Count - 1
                            If i > 0 Then
                                vxobSQL.Append(", ")
                            End If
    
                           
                            Dim numAntes As String = Nothing
                            Dim numDepois As String = Nothing
                            Dim numDecimal As Decimal
    
    
                            vxvaValor = row.Item(i).ToString().Replace(vbCr, "")
                            If vxvaValor.Length > 255 Then
                                vxvaValor = vxvaValor.Substring(0, 255)
                            End If
    
    
                            If i <> 14 And i <> 12 And i <> 15 Then
                                vxobSQL.AppendFormat("'{0}'", vxvaValor.Replace("'", "''"))
                            Else
                                If vxvaValor <> String.Empty Then
                                    numAntes = vxvaValor.ToString.Split(",")(0)
                                    numDepois = vxvaValor.ToString.Split(",")(1)
    
                                    vxvaValor = numAntes & "." & numDepois
    
                                    numDecimal = CLng(vxvaValor)
                                    
                                    numDecimal = Decimal.Parse(vxvaValor)
                                    vxobSQL.AppendFormat(numDecimal)
                                   
                                Else
                                   
                                    vxobSQL.AppendFormat("0")
                                End If
                            End If
                        Next
                        vxobSQL.Append(")")
    
                        vxobExcelCmd.CommandText = vxobSQL.ToString
                        vxobExcelCmd.ExecuteNonQuery()
    
                        count = count + 1
                    Next

    Já olhei os seguintes tópicos, mas não me ajudou...

    http://social.msdn.microsoft.com/Forums/pt-BR/excelpt/thread/35eb4e8c-f596-44a8-a8bd-2076f3c0fc24

    http://social.msdn.microsoft.com/Forums/pt-BR/vbapt/thread/a7ece70e-5e13-42e6-a33e-d39f97e7f9ee/

    http://social.msdn.microsoft.com/forums/pt-br/excelpt/thread/DD9C9561-400B-4D61-8CEC-CF9E77607A95

    sexta-feira, 22 de fevereiro de 2013 21:11

Todas as Respostas

  • Verifique esse tópico, se ajuda:

    http://office.microsoft.com/en-us/excel-help/convert-numbers-stored-as-text-to-numbers-HP001216761.aspx

    segunda-feira, 1 de abril de 2013 17:40