La fusion et la séparation des cellules est une fonctionnalité simple et couramment utilisée de Microsoft Excel. La fusion de cellules peut s’avérer utile dans des scénarios, par exemple, lorsque vous avez une feuille de calcul avec plusieurs colonnes qui partagent le même en-tête. Vous pouvez fusionner les cellules au-dessus des colonnes pour leur donner un en-tête commun. Dans le cas où les cellules fusionnées ne sont plus nécessaires, vous pouvez les dissocier tout aussi facilement. Vous devrez peut-être effectuer ces tâches dans vos applications C++. Pour cela, cet article vous apprendra comment fusionner et dissocier des cellules dans des feuilles de calcul Excel par programmation à l’aide de C++.
- API C++ pour fusionner et défusionner des cellules
- Fusionner des cellules dans une feuille de calcul Excel à l’aide de C++
- Annuler la fusion de cellules dans une feuille de calcul Excel à l’aide de C++
- Fusionner une plage de cellules dans une feuille de calcul Excel à l’aide de C++
- Annuler la fusion d’une plage de cellules dans une feuille de calcul Excel à l’aide de C++
- Fusionner les cellules d’une plage nommée dans une feuille de calcul Excel à l’aide de C++
API C++ pour fusionner et défusionner des cellules
Aspose.Cells for C++ est une bibliothèque C++ native qui vous permet de créer, lire et modifier des fichiers Excel sans nécessiter l’installation de Microsoft Excel. L’API prend également en charge la fusion et la séparation des cellules dans une feuille de calcul Excel. Vous pouvez soit installer l’API via NuGet ou la télécharger directement à partir de la section Téléchargements.
PM> Install-Package Aspose.Cells.Cpp
Fusionner des cellules dans une feuille de calcul Excel à l’aide de C++
Dans cet exemple, nous allons créer une feuille de calcul Excel vide et fusionner quelques cellules en suivant les étapes ci-dessous.
- Tout d’abord, créez une instance de la classe IWorkbook.
- Récupérez la feuille de calcul à l’aide de la méthode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Récupérez les cellules à l’aide de la méthode IWorksheet->GetICells().
- Fusionner les cellules en utilisant ICells->Merge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose :: Cells::Systems::Int32 totalColumns) méthode.
- Appliquez des styles aux cellules fusionnées.
- Enfin, enregistrez le fichier Excel de sortie à l’aide de IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String nom_fichier) méthode.
L’exemple de code suivant montre comment fusionner des cellules dans une feuille de calcul Excel à l’aide de C++.
// Chemin du répertoire de sortie.
StringPtr outDir = new String("OutputDirectory\\");
// Charger le fichier Excel d'entrée
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Accéder à la première feuille de calcul du fichier Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Créez un objet Cells pour récupérer toutes les cellules.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Fusionner des cellules
cells->Merge(5, 2, 2, 3);
// Mettre les données dans la cellule
cells->GetObjectByIndex(5, 2)->PutValue((StringPtr)new String("This is a test value"));
// Créer un objet Style
intrusive_ptr<IStyle> style = cells->GetICell(5, 2)->GetIStyle();
// Créer un objet Police
intrusive_ptr<Aspose::Cells::IFont> font = style->GetIFont();
// Définir le nom
font->SetName(new String("Times New Roman"));
// Définir la taille de la police
font->SetSize(18);
// Définir la couleur de la police
font->SetColor(Systems::Drawing::Color::GetCyan());
// Mettre le texte en gras
font->SetBold(true);
// Mettre le texte en italique
font->SetItalic(true);
// Définir la couleur de premier plan
style->SetForegroundColor(Systems::Drawing::Color::GetRed());
// Définir le motif
style->SetPattern(BackgroundType_Solid);
// Appliquer le style
cells->GetICell(5, 2)->SetIStyle(style);
// Enregistrez le fichier Excel
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));
Annuler la fusion de cellules dans une feuille de calcul Excel à l’aide de C++
Voici les étapes pour dissocier des cellules dans une feuille de calcul Excel.
- Chargez le fichier Excel à l’aide de la classe IWorkbook.
- Récupérez la feuille de calcul contenant les cellules fusionnées à l’aide de la méthode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Récupérez les cellules à l’aide de la méthode IWorksheet->GetICells().
- Dissocier les cellules en utilisant ICells->UnMerge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose::Cells ::Systems::Int32 totalColumns) méthode.
- Enfin, enregistrez le fichier Excel de sortie à l’aide de IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String nom_fichier) méthode.
L’exemple de code suivant montre comment dissocier des cellules dans une feuille de calcul Excel à l’aide de C++.
// Chemin du répertoire source.
StringPtr srcDir = new String("SourceDirectory\\");
// Chemin du répertoire de sortie.
StringPtr outDir = new String("OutputDirectory\\");
// Charger le fichier Excel d'entrée
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));
// Accéder à la première feuille de calcul du fichier Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Créez un objet Cells pour récupérer toutes les cellules.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Défusionnez les cellules.
cells->UnMerge(5, 2, 2, 3);
// Enregistrez le fichier Excel
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));
Fusionner une plage de cellules dans une feuille de calcul Excel à l’aide de C++
Voici les étapes pour fusionner une plage de cellules dans une feuille de calcul Excel.
- Tout d’abord, créez une instance de la classe IWorkbook.
- Récupérez la feuille de calcul souhaitée à l’aide de la méthode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Insérez des données dans la cellule.
- Créez la plage à l’aide de IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String adresse) méthode.
- Fusionnez la plage à l’aide de la méthode IRange->Merge().
- Enfin, enregistrez le fichier Excel de sortie à l’aide de IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String nom_fichier) méthode.
L’exemple de code suivant montre comment fusionner une plage de cellules dans une feuille de calcul Excel à l’aide de C++.
// Chemin du répertoire de sortie.
StringPtr outDir = new String("OutputDirectory\\");
// Charger le fichier Excel d'entrée
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Accéder à la première feuille de calcul du fichier Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Entrez les données dans la cellule A1.
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Créer une gamme
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Fusionner la plage en une seule cellule
range->Merge();
// Enregistrez le fichier Excel
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));
Annuler la fusion d’une plage de cellules dans une feuille de calcul Excel à l’aide de C++
Voici les étapes pour dissocier une plage de cellules dans une feuille de calcul Excel.
- Chargez le fichier Excel à l’aide de la classe IWorkbook.
- Récupérez la feuille de calcul contenant les cellules fusionnées à l’aide de la méthode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Créez la plage à l’aide de IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String adresse) méthode.
- Défusionnez la plage à l’aide de la méthode IRange->UnMerge().
- Enfin, enregistrez le fichier Excel de sortie à l’aide de IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String nom_fichier) méthode.
L’exemple de code suivant montre comment dissocier une plage de cellules dans une feuille de calcul Excel à l’aide de C++.
// Chemin du répertoire source.
StringPtr srcDir = new String("SourceDirectory\\");
// Chemin du répertoire de sortie.
StringPtr outDir = new String("OutputDirectory\\");
// Charger le fichier Excel d'entrée
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Accéder à la première feuille de calcul du fichier Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Créer une gamme
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Défusionner la plage
range->UnMerge();
// Enregistrez le fichier Excel
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));
Fusionner les cellules d’une plage nommée dans une feuille de calcul Excel à l’aide de C++
Aspose.Cells for C++ vous offre également la possibilité de fusionner les cellules d’une plage nommée. Pour y parvenir, veuillez suivre les étapes ci-dessous.
- Chargez le fichier Excel à l’aide de la classe IWorkbook.
- Récupérez la feuille de calcul à l’aide de la méthode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Créez la plage à l’aide de IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String adresse) méthode.
- Définissez le nom de la plage à l’aide de IRange->SetName(intrusiveptrAspose::Cells::Systems::String valeur) méthode.
- Créez et appliquez des styles à la plage nommée.
- Fusionnez les cellules de la plage nommée à l’aide de la méthode IRange->Merge().
- Enfin, enregistrez le fichier Excel de sortie à l’aide de IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String nom_fichier) méthode.
L’exemple de code suivant montre comment fusionner les cellules d’une plage nommée à l’aide de C++.
// Chemin du répertoire source.
StringPtr srcDir = new String("SourceDirectory\\");
// Chemin du répertoire de sortie.
StringPtr outDir = new String("OutputDirectory\\");
// Charger le fichier Excel d'entrée
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Accéder à la première feuille de calcul du fichier Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Créer une gamme
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Définir le nom de la plage
range->SetName(new String("Named_Range"));
// Définir l'objet de style
intrusive_ptr<IStyle> style = workbook->CreateIStyle();
// Définir l'alignement horizontal
style->SetHorizontalAlignment(TextAlignmentType::TextAlignmentType_Center);
// Créer un objet StyleFlag
intrusive_ptr<IStyleFlag> styleFlag = Factory::CreateIStyleFlag();
// Définir l'alignement horizontal to true
styleFlag->SetHorizontalAlignment(true);
// Appliquer le style à la gamme
range->ApplyIStyle(style, styleFlag);
// Mettre les données dans la plage
range->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Plage de fusion
range->Merge();
// Enregistrez le fichier Excel
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));
Obtenez une licence gratuite
Vous pouvez essayer l’API sans limitation d’évaluation en demandant une licence temporaire gratuite.
Conclusion
Dans cet article, vous avez appris à fusionner et dissocier des cellules dans une feuille de calcul Excel à l’aide de C++. De plus, vous avez vu comment fusionner et dissocier des plages et des plages nommées à l’aide d’Aspose.Cells for C++. L’API fournit de nombreuses fonctionnalités supplémentaires pour travailler avec des fichiers Excel que vous pouvez explorer en détail en visitant la documentation officielle. En cas de questions, n’hésitez pas à nous contacter sur notre forum d’assistance gratuit.