Bonjour,
Comme j'ai eu accès aux CData avec ma version Entreprise, je me suis penché sur la connexion Firedac/Excel. Mes premiers essais, sur un tableau existant sont concluants aussi me suis-je lancé sur une question : est-il possible de créer un tableau Excel directement ?
Selon la doc, créer une nouvelle feuille permet de créer le tableau grâce à la procédure CData.Excel.CreateWorksheet du moins est-ce le cas avec ODBC, toujours dans la doc cette fois il est possible d'utiliser FDStoredProc pour créer les feuilles
Là où cela devient dingue c'est que pour exécuter une procédure stockée il faut se connecter à un tableau donc, je tourne en rond pour créer une nouvelle feuille dans un nouveau tableau je dois d'abord me connecter à un tableau existant c'est quand même dommage !
en gros voilà mon code
une idée pour éviter d'avoir un premier tableau "bidon mais nécessaire" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 procedure TMainForm.Button1Click(Sender: TObject); begin if Opendialog1.Execute then begin Edit1.Text:=Opendialog1.FileName; with FDConnection1.Params as TFDPhysCDataExcelConnectionDefParams do begin if not FileExists(OpenDialog1.FileName) then ExcelFile:='D:\Common Files\test.xlsx' else ExcelFile:=OpenDialog1.FileName; end; try FDStoredProc1.ParamByName('file').asString:=OpenDialog1.FileName; FDStoredProc1.ParamByName('sheet').asString:='un essai'; FDStoredProc1.ParamByName('columnnames').asString:='col1,col2,col3'; FDStoredProc1.ExecProc; except // gestion d'erreurs (i.e. feuille déjà existante) end FDConnection1.Connected:=False; with FDConnection1.Params as TFDPhysCDataExcelConnectionDefParams do ExcelFile:=OpenDialog1.FileName; end; FDConnection1.Connected:=True; // suite des opérations end;
Partager