Autoajustar filas y columnas con C++
Ajuste automático
Aspose.Cells proporciona una clase Workbook que representa un archivo de Microsoft Excel. La clase Workbook contiene una colección Worksheets que permite acceder a cada hoja de cálculo en un archivo Excel. Una hoja de cálculo está representada por la clase Worksheet. La clase Worksheet ofrece una amplia gama de métodos para gestionar una hoja de cálculo. Este artículo analiza cómo usar la clase Worksheet para autoajustar filas o columnas.
Ajuste automático de fila - Simple
El enfoque más sencillo para ajustar automáticamente el ancho y la altura de una fila es llamar al método AutoFitRow de la clase Worksheet. El método AutoFitRow toma un índice de fila (de la fila a redimensionar) como parámetro.
#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;
}
Cómo AutoAjustar una Fila en un Rango de Celdas
Una fila está compuesta por muchas columnas. Aspose.Cells permite a los desarrolladores ajustar automáticamente una fila basada en el contenido en un rango de celdas dentro de la fila llamando a una versión sobrecargada del método AutoFitRow. Toma los siguientes parámetros:
- Índice de la fila, el índice de la fila a ajustar automáticamente.
- Índice de la primera columna, el índice de la primera columna de la fila.
- Índice de la última columna, el índice de la última columna de la fila.
El método AutoFitRow verifica el contenido de todas las columnas en la fila y luego ajusta automáticamente la fila.
#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();
}
Cómo AutoAjustar una Columna en un Rango de Celdas
Una columna está compuesta por muchas filas. Es posible ajustar automáticamente una columna según el contenido en un rango de celdas en la columna llamando a una versión sobrecargada del método AutoFitColumn que acepta los siguientes parámetros:
- Índice de columna, el índice de la columna que se va a ajustar automáticamente.
- Índice de la primera fila, el índice de la primera fila de la columna.
- Índice de la última fila, el índice de la última fila de la columna.
El método AutoFitColumn verifica el contenido de todas las filas en la columna y luego ajusta automáticamente la columna.
#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();
}
Cómo AutoAjustar Filas para Celdas Fusionadas
Con Aspose.Cells, es posible ajustar automáticamente filas incluso para celdas que han sido combinadas usando la API AutoFitterOptions. La clase AutoFitterOptions proporciona la propiedad GetAutoFitMergedCellsType() que puede usarse para ajustar filas de celdas combinadas. GetAutoFitMergedCellsType() acepta la enumeración AutoFitMergedCellsType, que tiene los siguientes miembros:
- Ninguno: Ignora las celdas combinadas.
- PrimeraLinea: Solo expande la altura de la primera fila.
- ÚltimaLinea: Solo expande la altura de la última fila.
- CadaLinea: Solo expande la altura de cada fila.
#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();
}
También puede intentar usar las versiones sobrecargadas de los métodos AutoFitRows y AutoFitColumns que aceptan un rango de filas/columnas y una instancia de AutoFitterOptions para ajustar automáticamente las filas/columnas seleccionadas con el AutoFitterOptions deseado.
Las firmas de los métodos mencionados anteriormente son las siguientes:
- AutoFitRows(int startRow, int endRow, AutoFitterOptions options)
- AutoFitColumns(int firstColumn, int lastColumn, AutoFitterOptions options)