Export XLS (via ODBC)
# 0000000765
ajouté le 10/07/2010 18:19:32 et modifié le 10/07/2010
consulté 10301 fois
Niveau
initié
Version(s) Foxpro : VFP 9.0
Description
Bonjour,
J'ai réceptionné une demande Khaled en email me demandant comment on peut exporter des données VFP dans une feuille Excel avec des données dans différents onglets. J'ai répondu qu'il y avait plusieurs solutions (Automation, Odbc, ..) comme toujours en VFP
Je propose une illustration avec ODBC ci-après. Cet exemple prend des morceaux de 2 tables (Clients et Employés) de la base Northwind pour les mettre dans des onglets. (testé avec excel 2003)
Cordialement Francis
Code source :
* * Exemple d'exportation (simplifié) vers une feuille Excel en en utilisant odbc / sql * Francis FAURE * * Illustration en exportant un bout de Customers de Northwind * SETDATEFRENCH SETCENTURYon
* Alltrim + transformation de ' en '' car le ' est le délimiteur de champ FUNCTION Clean(lsString) asString RETURNSTRTRAN(ALLTRIM(m.lsString), ['], [''])
* Créer un onglet ("une table") dans la feuille Excel * (l'onglet ne doit pas exister) * retourne le résultat de sqlexec FUNCTION XLS_Create_WorkSheet(liC asInteger, ;
lsSheet asString, ;
lsColumns_name_and_type asstring) asInteger LOCAL lsSql asstring LOCAL lsReturn asInteger
lsReturn=-1 IF m.liC>0
lsSql ="create table "+ALLTRIM(m.lsSheet)+; " ("+lsColumns_name_and_type +")"
lsReturn = SQLEXEC(m.LiC, m.lsSql) IF m.lsReturn=-1 * Erreurs a gérer
? MESSAGE() endif ENDIF RETURN m.lsReturn ENDPROC
* Insére des données dans un un onglet * retourne le résultat de sqlexec FUNCTION XLS_AddData(liC asInteger, ;
lsSheet asString, ;
lsColumns_name_and_type asstring,;
lsValues asstring) asInteger LOCAL lsSql asstring LOCAL lsReturn asInteger
lsReturn=-1 IF m.liC>0
lsSql ="insert into "+ALLTRIM(m.lsSheet)+; " ("+lsColumns_name_and_type +") "+; " values ("+m.lsValues+")"
lsReturn = SQLEXEC(m.LiC, m.lsSql) IF m.lsReturn=-1 * Erreurs a gérer
? MESSAGE() endif ENDIF RETURN m.lsReturn ENDPROC