Ecriture de texte dans excel

Soyez le premier à donner votre avis sur cette source.

Snippet vu 22 576 fois - Téléchargée 33 fois

Contenu du snippet

ce code est un exemple de base pour l'utilisation d'Excel
il écrit hello dans une cellule
On met en forme le texte.
bon je sais il est très basique mais ça peut toujours servir.

Source / Exemple :


#include <stdio.h>
#import "C:\Program Files\Microsoft Office\Office\MSO9.DLL" no_namespace rename("DocumentProperties","DocumentPropertiesXL")
#import "C:\Program Files\Fichiers communs\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" no_namespace
#import "C:\Program Files\Microsoft Office\Office\EXCEL9.OLB"  rename("ExitWindows", "ExitWindowsWD") rename("DialogBox", "ExcelDialogBox") rename("RGB", "ExcelRGB") no_dual_interfaces

using namespace std;

int main()
{	

  // Initialize COM
  CoInitialize(NULL);
  try
  {

    Excel::_ApplicationPtr excel;
    // Initialize Excel and make sure it's initialized
    HRESULT hr = excel.CreateInstance(L"Excel.Application");
    if(FAILED(hr))
    {
      char msg[1024] = {0};
      sprintf(msg, "E: There was an error initializing Excel: %d", hr);
       printf(msg);
    }
	excel->PutVisible (true);//Put Excel visible

    //ajoute un workbook
    Excel::_WorkbookPtr workbook = excel->Workbooks->Add(static_cast<long>(Excel::xlWorksheet)); // Create the workbook
    
	//prendre le nom de la feuille active
	Excel::_WorksheetPtr worksheet = excel->ActiveSheet; // Get the active sheet
	
	//nommer la feuille
	worksheet->PutName ("Nom de la feuille");

	//taille du texte
	worksheet->Range["A1:D1"]->Font->Size = 20; 

	//nom de la police de charactère
	worksheet->Range["A1:D1"]->Font->Name = "MS Sérif";
	
	//gras
	worksheet->Range["A1:D1"]->Font->Bold=true;
	
	//italique
	worksheet->Range["A1:D1"]->Font->Italic=true;
	
	//souligné
	worksheet->Range["A1:D1"]->Font->Underline=true;
 
	//couleur de la police
	worksheet->Range["A1:D1"]->Font->ColorIndex = 9L;

	//couleur du fond
    worksheet->Range["A1:D1"]->Interior->ColorIndex = 10L;
	
	//bordure
	worksheet->Range["A1:D1"]->Borders->LineStyle = 6;
	
	//largeur de la colonne
	worksheet->Range["A1"]->Columns->ColumnWidth = 32;
	
	//hauteur de la ligne
	worksheet->Range["A2"]->Rows->RowHeight = 20;

	// This is how you put the values into the worksheet
    worksheet->Range["A1"]->Value = "Hello"; // Set a value

    worksheet->SaveAs("c:\\test.xls"); // Save it
    workbook->Close(); // Close the workbook
    excel->Quit(); // Quit excel
  }
  catch(_com_error &ce)
  {

    // Handle the error
	 
  }
  CoUninitialize();
}

A voir également

Ajouter un commentaire Commentaires
Messages postés
20
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
4 juin 2007

Excuse moi j'ai été sur ce site mais je ne comprends pas comment on fait pour changer les fichiers des imports avec microsoft office 2003.

Merci d'avance..
Messages postés
3
Date d'inscription
jeudi 11 décembre 2003
Statut
Membre
Dernière intervention
3 avril 2007

attention:
si vous n'utilisez pas le office 2000,ce code il va pas marcher.
il faudra dans ce cas changer les fichiers des imports.

pour trouver les noms des fichiers correspondant à votre version de office voici un lien utile:
http://support.microsoft.com/kb/307473/PL/
Messages postés
127
Date d'inscription
mardi 23 août 2005
Statut
Membre
Dernière intervention
9 mai 2011

mais est ce que la source marche avec toutes les versions de Excel ? Parce que je compte me servir de ce code pour "imprimer" des listes depuis un prog, et donc le prog n'est pas forcément sur la même machine...
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Ah bon ok...ben dans ce cas la source me servira pas loool, dsl :(
Messages postés
2670
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
!!!!! IMPORTANT !!!!!

Cette méthode a un incovénient majeur!
Le fait de ser servir de Excel via les "imports", il es résulte que le programme ne peut marcher que sur des machines ayant la meme version de Excel que celle qui a permis la réalisation du programme!

Pour y palier mieux vaut utiliser ADO!

Shell
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.