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
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)