Ricardo,

Para valores numéricos e datas criei funcões de conversão, o excel converte data de forma correta se receber o texto no formato "yyyy/MM/dd hhhh:mm:ss", para valores é a mesma coisa, internamente o excel trabalha com formato americano 99999.99 (com ponto).

Function: gf_ExcelDateToString
   Description:
   Returns
       String:
   Parameters
       Date/Time: p_Data
   Static Variables
   Local variables
   Actions
       Return SalNumberToStrX( SalDateMonth( p_Data ), 0 ) || '/' ||
               SalNumberToStrX( SalDateDay( p_Data ), 0 ) || '/' ||
               SalNumberToStrX( SalDateYear( p_Data ), 0 ) || ' ' ||
               SalNumberToStrX( SalDateHour( p_Data ), 0 ) || ':' ||
               SalNumberToStrX( SalDateMinute( p_Data ), 0 ) || ':' ||
               SalNumberToStrX( SalDateSecond( p_Data ), 0 )

Function: gf_ExcelNumberToString
   Description:
   Returns
       String:
   Parameters
       Number: p_Number
   Static Variables
   Local variables
       Number: nInteiro
       Number: nDecimal
       String: strReturn
   Actions
       Set nInteiro = SalNumberTruncate( p_Number, 40, 0 )
       Set nDecimal = SalNumberMod( p_Number, 1 )
Set strReturn = SalNumberToStrX( nInteiro, 0 ) || '.' || SalStrMidX( SalNumberToStrX( nDecimal, 40 ), 2, 40 )
       Return strReturn

Sds,
Erasmo

Ricardo Gomes wrote:
Muito legal sua dica Erasmo... Você teria o comando para formatar datas? Algumas datas que insiro nas células o Excel reconhece como data, outros ele reconhece como texto. O pessoal me passou a dica de modificar a configurações regionais do windows, mas eu não queria ter que mexer na máquina do usuário. Também tenho problemas em expressar moeda, pois coloco na célula o valor 1.210,35 por exemplo e o Excel entende como caracter. Tem alguma forma de fazer o excel entender como moeda (dinheiro)? Obrigado. Ricardo.

    ----- Original Message -----
    *From:* Erasmo <mailto:[EMAIL PROTECTED]>
    *To:* sqlwin@virtualand.net <mailto:sqlwin@virtualand.net>
    *Sent:* Friday, May 04, 2007 2:56 PM
    *Subject:* Re: [sqlwin] Formatando uma célula no Excel.

    Ricardo,

    Por padrão toda célula tem formato "GENERAL" o que acaba causando
    o problema que vc relatou, para formatar a célula como "TEXT",
    evitando a conversão automática, basta rodar este comando no Range:

        Variables
            Variant: v_Format
        ....
        Actions
                 ...
                Call v_Format.SetString( "@" )
                Call oRange.PropSetNumberFormat( v_Format )


    Sds,
    Erasmo

    Ricardo Gomes wrote:
    Pessoal, consigo trabalhar com planilhas excel pelo CTD 1.5.1
    normalmente: crio planilhas, atribuo e recupero valores de
    células, faço somas, etc. Estou tentando achar um meio de
    formatar uma coluna como texto, número ou data. Alguém sabe como
    faço isso via ActiveX?
Na verdade, toda vez que coloco numa célula a cadeia "0001525", o
    excel entende que é um número e retira os zeros à esquerda. Com
    isso eu perco informação, pois a cadeia não representa um valor
    númerico e sim uma chave e preciso recuperar seu valor
    corretamente. Com data acontece de algumas vezes o excel
    reconhecer como data, outras vezes com cadeia caracteres.  Alguém
    sabe como posso controlar isso?
Obrigado. Ricardo.


--
    Erasmo Bispo de Oliveira Junior
    Gerente de Pesquisa e Desenvolvimento
    Softway - Softcomex Informática Ltda.
    Pabx:   +55 (19) 3739.9200
    Direto: +55 (19) 3739.9361
    Fax:    +55 (19) 3739.9240
    e-mail: [EMAIL PROTECTED]
    web:    http://www.softcomex.com.br



--

Erasmo Bispo de Oliveira Junior
Gerente de Pesquisa e Desenvolvimento
Softway - Softcomex Informática Ltda.
Pabx:   +55 (19) 3739.9200
Direto: +55 (19) 3739.9361
Fax:    +55 (19) 3739.9240
e-mail: [EMAIL PROTECTED]
web:    http://www.softcomex.com.br

Responder a