Ajuster automatiquement la hauteur des lignes et la largeur des colonnes avec C++
Ajustement automatique
Aspose.Cells fournit une classe Workbook qui représente un fichier Microsoft Excel. La classe Workbook contient une collection Worksheets permettant d’accéder à chaque feuille de calcul dans un fichier Excel. Une feuille est représentée par la classe Worksheet. La classe Worksheet offre un large éventail de méthodes pour gérer une feuille de calcul. Cet article aborde l’utilisation de la classe Worksheet pour autofit les lignes ou les colonnes.
Ajuster automatiquement la ligne - Simple
L’approche la plus simple pour ajuster automatiquement la largeur et la hauteur d’une ligne consiste à appeler la méthode AutoFitRow de la classe Worksheet. La méthode AutoFitRow prend un indice de ligne (de la ligne à redimensionner) en paramètre.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"Book1.xlsx";
// Create workbook from file
Workbook workbook(inputFilePath);
// Access the first worksheet in the Excel file
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Auto-fit the 2nd row (index 1) of the worksheet
worksheet.AutoFitRow(1);
// Save the modified Excel file
U16String outputFilePath = srcDir + u"output.xlsx";
workbook.Save(outputFilePath);
std::cout << "Row auto-fitted and file saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
return 0;
}
Comment ajuster automatiquement une ligne dans une plage de cellules
Une ligne est composée de plusieurs colonnes. Aspose.Cells permet aux développeurs d’automatiser le réglage de la hauteur d’une ligne en fonction du contenu dans une plage de cellules de cette ligne, en appelant une version surchargée de la méthode AutoFitRow. Elle accepte les paramètres suivants :
- Index de la ligne, l’index de la ligne à ajuster automatiquement.
- Index de la première colonne, l’index de la première colonne de la ligne.
- Index de la dernière colonne, l’index de la dernière colonne de la ligne.
La méthode AutoFitRow vérifie le contenu de toutes les colonnes de la ligne puis ajuste automatiquement la hauteur de la ligne.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"Book1.xlsx";
// Path of output Excel file
U16String outputFilePath = outDir + u"output.xlsx";
// Open the Excel file
Workbook workbook(inputFilePath);
// Accessing the first worksheet in the Excel file
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Auto-fitting the 3rd row of the worksheet
worksheet.AutoFitRow(1, 0, 5);
// Save the modified Excel file
workbook.Save(outputFilePath);
std::cout << "Row auto-fitted and file saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Comment ajuster automatiquement une colonne dans une plage de cellules
Une colonne est composée de plusieurs lignes. Il est possible d’ajuster automatiquement la largeur d’une colonne en fonction du contenu dans une plage de cellules de cette colonne en appelant une version surchargée de la méthode AutoFitColumn qui accepte les paramètres suivants :
- Index de la colonne, l’index de la colonne à ajuster automatiquement.
- Index de la première ligne, l’index de la première ligne de la colonne.
- Index de la dernière ligne, l’index de la dernière ligne de la colonne.
La méthode AutoFitColumn vérifie le contenu de toutes les lignes de la colonne puis ajuste automatiquement la largeur de la colonne.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"Book1.xlsx";
// Create workbook from the input file
Workbook workbook(inputFilePath);
// Access the first worksheet in the Excel file
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Auto-fit the 5th column (index 4) from row 4 to 6
worksheet.AutoFitColumn(4, 4, 6);
// Save the modified Excel file
U16String outputFilePath = srcDir + u"output.xlsx";
workbook.Save(outputFilePath);
std::cout << "Column auto-fitted and file saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Comment ajuster automatiquement les lignes pour les cellules fusionnées
Avec Aspose.Cells, il est possible d’automatiser l’ajustement des lignes même pour les cellules fusionnées en utilisant l’API AutoFitterOptions. La classe AutoFitterOptions fournit la propriété GetAutoFitMergedCellsType() qui peut être utilisée pour autofit les lignes de cellules fusionnées. GetAutoFitMergedCellsType() accepte l’énumération AutoFitMergedCellsType avec les membres suivants :
- None : Ignorer les cellules fusionnées.
- FirstLine : N’agrandit la hauteur que de la première ligne.
- LastLine : N’agrandit la hauteur que de la dernière ligne.
- EachLine : N’agrandit la hauteur de chaque ligne.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Output directory
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Instantiate a new Workbook
Workbook wb;
// Get the first (default) worksheet
Worksheet worksheet = wb.GetWorksheets().Get(0);
// Create a range A1:B1
Range range = worksheet.GetCells().CreateRange(0, 0, 1, 2);
// Merge the cells
range.Merge();
// Insert value to the merged cell A1
worksheet.GetCells().Get(0, 0).SetValue(u"A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog....end");
// Create a style object
Style style = worksheet.GetCells().Get(0, 0).GetStyle();
// Set wrapping text on
style.SetIsTextWrapped(true);
// Apply the style to the cell
worksheet.GetCells().Get(0, 0).SetStyle(style);
// Create an object for AutoFitterOptions
AutoFitterOptions options;
// Set auto-fit for merged cells
options.SetAutoFitMergedCellsType(AutoFitMergedCellsType::EachLine);
// Autofit rows in the sheet (including the merged cells)
worksheet.AutoFitRows(options);
// Save the Excel file
wb.Save(outDir + u"AutofitRowsforMergedCells.xlsx");
std::cout << "Autofit rows for merged cells completed successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Vous pouvez également essayer d’utiliser les versions surchargées des méthodes AutoFitRows et AutoFitColumns acceptant une plage de lignes/colonnes et une instance de AutoFitterOptions pour autofit les lignes/colonnes sélectionnées avec votre AutoFitterOptions souhaité en conséquence.
Les signatures des méthodes susmentionnées sont les suivantes :
- AutoFitRows(int startRow, int endRow, AutoFitterOptions options)
- AutoFitColumns(int firstColumn, int lastColumn, AutoFitterOptions options)