LibExcel

Informations

Année 2010
Catégorie Projet étudiant
Site http://libexcel.sourceforge.net/
Société ONERA
Langage C++
Compatibilité  Linux, Windows

Présentation du projet

Le projet LibExcel s'inscrit dans le cadre du projet IESTA (Infrastructure d'Evaluation des Systèmes de Transport Aérien futurs) de l'ONERA (Office National d'Etudes et de Recherches Aérospatiales). Il a pour finalité de concevoir une bibliothèque de fonctions permettant de générer des fichiers Excel à partir d’un code C++. Cette bibliothèque est destinée au formatage des données de simulations réalisées par l’ONERA

Le projet LibExcel présente les caracteristiques suivantes :

  • Multiplateforme
  • Réutilisable dans n'importe quel projet C++
  • Permet la création de fichiers excel CSV et XLS
  • Permet la lecture de fichiers excel CSV et XLS
  • Permet la modification de fichiers excel CSV et XLS

Après avoir obtenu les autorisations nécessaires, ce projet est devenu un projet "open source" : LibExcel.

Travail réalisé

Conception et développement d'une bibliothèque de fonctions d’interfaçage C++/Excel. Cette dernière se base sur deux bibliothèques déjà existantes :

Exemple

using namespace xlsFile;

int main()
{
   /*Creation du fichier xls qui sera enregistré au chemin ./creation/monFichierXLs.xls*/
   XLSFile xl("./creation/monFichierXLs.xls");

   /*Creation d'une feuille dans le fichier*/
   XLSSheet f = xl.newSheet("Sheet1");

   /*Mise en forme des cellules*/
   f.setRowHeight(1,200);
   f.setColWidth(1,200);

   /*Remplissage des cellules (ligne,colonne)*/
   /*Cellule (1,1)*/
   f.setText(1,1, "Un contenu");
   f.setFontBold(1,1, BOLDNESS_BOLD);
   f.setFontItalic(1,1, true);
   f.setFontOrientation(1,1, ORI_TOPBOTTOMTXT);
   f.setCellFrame(1,1, CLR_DARK_RED,BORDER_MEDIUM);
   f.setFontHAlign(1,1, HALIGN_RIGHT);

   /*Cellule (0,0)*/
   f.setNumber(0,0, 3.5);
   f.setFont(0,0, "serif");
   f.setFontColor(0,0, CLR_ORANGE);

   /*Cellule (0,4)*/
   f.setNumber(0,4, 8);
   f.setFontHAlign(0,4, HALIGN_CENTER);
   f.setFontOutline(0,4, true);

   /*Cellule (3,0)*/
   f.setText(3,0, "Voici un test de creation de fichier xls");
   f.setCellMerge(3,0,3, 4);
   f.setCellBgColor(3,0, CLR_YELLOW);
   f.setFontHAlign(3,0, HALIGN_CENTER);
   f.setFontHeight(3,0, 18);
   f.setCellBorderStyle(3,4, BORDER_RIGHT);

   /*Test du remplissage par tableau*/
   int tab[3][3]={{1,2,3},{4,5,6},{7,8,9}};
   double tabD[3][4]={{1.4,0.2,0.3,0},{4,5.258,1.226,4.3},{7.8,0.18,9,778.1}};
   string tabS[3][3]={{"a","b","c"},{"d","e","f"},{"g","h","i"}};
   
   /*Creation d"une seconde feuille dans le fichier */
   XLSSheet f2 = xl.newSheet("Feuille 2 test tableau");
   f2.setTabNumber(&tab[0][0],3,3);
   f2.setTabNumber(&tabD[0][0],3,4,4,4);
   f2.setTabText(&tabS[0][0],3,3,10);

   /*Enregistrement du fichier xls*/
   xl.save();

   return 0;
}
Copyright © 2011 - 2025 ROLLAND Cyrille Tous droits réservés