PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Problemas com a integração Excel x Delphi #264232

05/01/2005

0

Olá pessoal....

Há muito tempo venho pessquisando um problema que encontrei na integração Excel x Delphi... Acontece o seguinte...:

Quando se tem instalado o Excel em um idioma ´X´... e as configurações regionais do Windows (Formato de Moeda,Data e Numeros) estão apontando para este mesmo idioma... BELEZA... a integração funciona perfeitamente...

MAS....

Quando temos 2 idiomas diferentes um para o Excel e outro para os Formatos do Windows... dá um erro que eu não consegui achar nenhuma explicação... nem aqui... nem em lugar nenhum...

o erro é o seguinte :

Logo que eu executo os comandos :

LCid := GetUserDefaultLCid;
FN := SaveDialog.FileName;
ExcelApplication1.Connect;
ExcelApplication1.Visible[LCid] := True;
[color=darkblue:5d4f0e75a3] WB := ExcelApplication1.Workbooks.Open
(FN,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,LCid);[/color:5d4f0e75a3]

quando ele vai executar o comando em azul... Booommmmmm
[color=red:5d4f0e75a3]´Biblioteca de formato antigo ou tipo inválido´ [/color:5d4f0e75a3]

Bom ... com esses dois comandos eu consigo descobrir qual o idioma do Windows e do Excel


Windows_Language := Frm_Principal.GetWindowsLanguage();

Excel_Language := ExcelApplication1.Application.LanguageSettings.LanguageID[msoLanguageIDUI];

Bom... Depois de muito fuçar... descobri o local onde o Windows guarda as informações das Configurações Regionais no Registry.

Com isso eu consigo pelo delphi alterar esses valores no Registry de modo que o Windows tenha os mesmos formatos da lingua do Excel...

após isso eo consigo abrir o Excel sem problemas e exportar os dados...

e quando eu fecho o Excel eu retorno as configurações Regionais antigas...

Essa solução funciona... mas é ... como dizem os mais sábios...
UMA GAMBIARRA

Gostaria de saber se existe um comando de API ou qualquer coisa que faça isso pra mim... tipo

SetWindowsLanguage(LangNumber : Integer)

ou alguma maneira de abrir o excel sem dar esse erro...

Grato!!!!
Fábio


Stratofabius

Stratofabius

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar