[Windows] [OpenOffice] LoadComponentFromURL : Passage d'arguments
Bonjour,
J’ai un programme Lazarus qui convertit un classeur Excel en fichier CSV en faisant appel à l’interface OLE d’OpenOffice.
Mon problème est que si je passe les chemins en tant que constantes tout est OK alors que si le même chemin est passé en tant que variable j’ai un message « com.sun.star.lang.IllegalArgumentException : URL seems to be an unsupported one ».
J’utilise Lazarus 0.9.28.2 (mettre à jour sur une version plus ressente casserait mon projet qui est relativement complexe) et OpenOffice 3.0.0 build 9358
Voici la procédure :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| uses windows, comobj, variants;
procedure TForm1.Button1Click(Sender: TObject);
var
Probleme:Boolean;
ServeurOO: Variant;
CoreReflection:Variant;
ValeurPropriete:Variant;
BureauOO:Variant;
ParametresChargement:Variant;
ParametresExport:variant;
Document:Variant;
NomFic :String ;
begin
Probleme:=False;
try
ServeurOO:=CreateOleObject('com.sun.star.ServiceManager');
except
on E:Exception do
begin
Application.MessageBox(pchar('Impossible de se connecter à OpenOffice. '+e.Message),'Erreur OLE',MB_OK);
Probleme:=True;
end;
end;
if Probleme=False then
begin
BureauOO:=ServeurOO.CreateInstance('com.sun.star.frame.Desktop');
ParametresChargement:=VarArrayCreate([0,-1],varvariant);
NomFic='file:///C:/test.xls' ;
Document:=BureauOO.LoadComponentFromURL(NomFic,'_blank',0,ParametresChargement);//Provoque une erreur
Document:=BureauOO.LoadComponentFromURL('file:///C:/test.xls','_blank',0,ParametresChargement);//fonctionne
end;
end; |
Je suppose que c’est un problème de conversion mais je n’ai pas pu trouver. Si une ame charitable pouvait m’aider…
P.S. : je n’ai pas trouvé de version téléchargeable de l’API hormis celle pour Visual Studio. Existe-il des CHM ou des versions zippées comme pour les FAQ de ce site ?