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