Comment créer des fichiers Excel avec C++
Tags: cpp, excel
Published: 2023-08-16 08:20:43

## Introduction
Les fichiers Excel sont devenus des outils omniprésents pour l'organisation, l'analyse et la présentation de données dans divers secteurs et domaines. La création de fichiers Excel permet aux utilisateurs de structurer et de manipuler des données avec facilité, ce qui conduit à de meilleures informations et à une prise de décision éclairée. Dans cet article, nous vous montrerons comment **créer des fichiers Excel en utilisant C++**.

Nous aborderons les sujets suivants :

- Créer un fichier Excel en ajoutant directement des données aux cellules avec C++
- Créer un fichier Excel en utilisant des données issues de tableaux avec C++

## Installer la bibliothèque requise
Pour créer des fichiers Excel dans des applications C++, nous pouvons utiliser [Spire.XLS for C++](https://www.e-iceblue.com/Introduce/xls-for-CPP.html), qui est une bibliothèque puissante pour créer, lire, modifier et convertir des fichiers Excel dans des applications C++.

Vous pouvez installer Spire.XLS for C++ via NuGet en suivant les étapes suivantes :

- Ouvrez la Package Manager Console.
- Exécutez la commande suivante : Install-Package Spire.Xls.Cpp

## Créer un fichier Excel en ajoutant directement des données aux cellules avec C++
Spire.XLS for C++ prend en charge l'ajout de différents types de données tels que du texte, des nombres, des formules, des images, et bien plus encore, aux fichiers Excel. 

Voici un exemple simple qui montre comment créer un fichier Excel et ajouter du texte et des valeurs numériques à des cellules spécifiques du fichier avec C++ :
```cpp
#include "Spire.Xls.o.h"; 
using namespace Spire::Xls; 
 
int main() { 
	// Spécifiez le chemin et le nom du fichier de sortie 
	std::wstring outputPath = L"Output\\"; 
	std::wstring outputFile = outputPath + L"WriteIndividualValuesToCells.xlsx"; 
 
	// Crée un objet Workbook 
	intrusive_ptr<Workbook> workbook = new Workbook(); 
 
	// Obtient la première feuille 
	intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0)); 
 
	// Ajoute du texte et des nombres aux cellules spécifiées 
	sheet->GetRange(1, 1)->SetText(L"Nom"); 
	sheet->GetRange(1, 2)->SetText(L"Âge"); 
	sheet->GetRange(1, 3)->SetText(L"Département"); 
	sheet->GetRange(1, 4)->SetText(L"Date d'embauche"); 
	sheet->GetRange(2, 1)->SetText(L"Hazel"); 
	sheet->GetRange(2, 2)->SetNumberValue(29); 
	sheet->GetRange(2, 3)->SetText(L"Marketing"); 
	sheet->GetRange(2, 4)->SetText(L"2021-02-26"); 
	sheet->GetRange(3, 1)->SetText(L"Tina"); 
	sheet->GetRange(3, 2)->SetNumberValue(27); 
	sheet->GetRange(3, 3)->SetText(L"Ressources humaines"); 
	sheet->GetRange(3, 4)->SetText(L"2020-07-13"); 
	sheet->GetRange(4, 1)->SetText(L"Amy"); 
	sheet->GetRange(4, 2)->SetNumberValue(35); 
	sheet->GetRange(4, 3)->SetText(L"Développement"); 
	sheet->GetRange(4, 4)->SetText(L"2019-04-01"); 
 
	// Ajuste la largeur des colonnes automatiquement 
	sheet->GetAllocatedRange()->AutoFitColumns(); 
 
	// Applique un style à la première ligne 
	intrusive_ptr <CellStyle> style = dynamic_pointer_cast<CellStyle>(workbook->GetStyles()->Add(L"newStyle")); 
	style->GetFont()->SetIsBold(true); 
	sheet->GetRange(1, 1, 1, 4)->SetStyle(style); 
 
	// Enregistre dans un fichier 
	workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2016); 
	workbook->Dispose(); 
} 
```

## Créer un fichier Excel en utilisant des données issues de tableaux avec C++
Spire.XLS for C++ vous permet également de créer des fichiers Excel en utilisant des données provenant de sources de données existantes telles que des tableaux. 

Voici un exemple simple qui montre comment créer un fichier Excel en utilisant des données provenant de tableaux :
```cpp
#include "Spire.Xls.o.h"; 
using namespace Spire::Xls; 
 
int main() { 
	// Spécifiez le chemin et le nom du fichier de sortie 
	std::wstring outputPath = L"Output\\"; 
	std::wstring outputFile = outputPath + L"WriteDataFromArrays.xlsx"; 
 
	// Crée un objet Workbook 
	intrusive_ptr<Workbook> workbook = new Workbook(); 
 
	// Obtient la première feuille 
	intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0)); 
 
	// Définit les en-têtes de colonne 
	std::vector<std::wstring> headers = { L"Nom", L"Âge", L"Département", L"Date d'embauche" }; 
	for (int col = 0; col < headers.size(); col++) { 
		sheet->GetRange(1, col + 1)->SetText(headers[col]); 
	} 
 
	// Définit les données à partir de tableaux 
	std::vector<std::wstring> names = { L"Hazel", L"Tina", L"Amy" }; 
	std::vector<int> ages = { 29, 27, 35 }; 
	std::vector<std::wstring> departments = { L"Marketing", L"Ressources humaines", L"Développement" }; 
	std::vector<std::wstring> hireDates = { L"2021-02-26", L"2020-07-13", L"2019-04-01" }; 
 
	for (int row = 0; row < names.size(); row++) { 
		sheet->GetRange(row + 2, 1)->SetText(names[row]); 
		sheet->GetRange(row + 2, 2)->SetNumberValue(ages[row]); 
		sheet->GetRange(row + 2, 3)->SetText(departments[row]); 
		sheet->GetRange(row + 2, 4)->SetText(hireDates[row]); 
	} 
 
	// Ajuste la largeur des colonnes automatiquement 
	sheet->GetAllocatedRange()->AutoFitColumns(); 
 
	// Applique un style à la première ligne 
	intrusive_ptr <CellStyle> style = dynamic_pointer_cast<CellStyle>(workbook->GetStyles()->Add(L"newStyle")); 
	style->GetFont()->SetIsBold(true); 
	sheet->GetRange(1, 1, 1, headers.size())->SetStyle(style); 
 
	// Enregistre dans un fichier 
	workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2016); 
	workbook->Dispose(); 
} 
```

## Conclusion
Dans cet article, nous avons expliqué comment créer des fichiers Excel en utilisant C++. Nous avons utilisé la bibliothèque Spire.XLS for C++ pour ajouter du texte, des valeurs numériques et des tableaux aux cellules d'un fichier Excel. Vous pouvez désormais utiliser ces exemples comme point de départ pour créer vos propres fichiers Excel personnalisés en utilisant C++.

## Sujets connexes

- [C++ : Convertir des classeurs ou des feuilles de calcul Excel en PDF](https://www.e-iceblue.com/Tutorials/C++/Spire.XLS-for-C++/Program-Guide/Conversion/C++-Convert-Excel-Workbooks-or-Worksheets-to-PDF.html)
- [C++ : Convertir Excel en CSV ou CSV en Excel](https://www.e-iceblue.com/Tutorials/C++/Spire.XLS-for-C++/Program-Guide/Conversion/C++-Convert-Excel-to-CSV-or-CSV-to-Excel.html)
- [C++ : Convertir Excel en images](https://www.e-iceblue.com/Tutorials/C++/Spire.XLS-for-C++/Program-Guide/Conversion/C++-Convert-Excel-to-Images.html)
- [C++ : Fusionner des fichiers Excel en un seul](https://www.e-iceblue.com/Tutorials/C++/Spire.XLS-for-C++/Program-Guide/Document-Operation/C++-Merge-Excel-files-into-One.html)
- [C++ : Protéger ou déprotéger des documents Excel](https://www.e-iceblue.com/Tutorials/C++/Spire.XLS-for-C++/Program-Guide/Security/C++-Protect-or-Unprotect-Excel-Documents.html)
- [C++ : Appliquer ou supprimer une validation des données dans Excel](https://www.e-iceblue.com/Tutorials/C++/Spire.XLS-for-C++/Program-Guide/Data/C++-Apply-or-Remove-Data-Validation-in-Excel.html)