Автоматическая настройка строк и столбцов с помощью C++

Автоматическая подгонка размера

Aspose.Cells предоставляет класс Workbook, который представляет файл Microsoft Excel. Класс Workbook содержит коллекцию Worksheets, которая позволяет обращаться к каждому рабочему листу в файле Excel. Рабочий лист представлен классом Worksheet. Класс Worksheet предоставляет широкий спектр методов для управления рабочим листом. В этой статье рассматривается использование класса Worksheet для автоматической подгонки строк или столбцов.

Автоматическая подгонка строки - простой

Самый простой способ автоматически подогнать ширину и высоту строки — вызвать метод AutoFitRow класса Worksheet. Метод AutoFitRow принимает индекс строки (подгоняемой) в качестве параметра.

#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;
}

Как автоматически подогнать строку в диапазоне ячеек

Строка состоит из многих столбцов. Aspose.Cells позволяет автоматически подгонять строку на основе содержимого в диапазоне ячеек внутри строки, вызвав переопределённую версию метода AutoFitRow. Он принимает следующие параметры:

  • Индекс строки, индекс строки, которую нужно автоматически подогнать.
  • Индекс первого столбца, индекс первого столбца строки.
  • Индекс последнего столбца, индекс последнего столбца строки.

Метод AutoFitRow проверяет содержимое всех столбцов в строке и затем автоматически подгоняет ее.

#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();
}

Как автоматически подогнать столбец в диапазоне ячеек

Столбец состоит из многих строк. Можно автоматически подогнать столбец на основе содержимого в диапазоне ячеек в столбце, вызвав переопределённую версию метода AutoFitColumn, которая принимает следующие параметры:

  • Индекс столбца, индекс столбца, который нужно автоматически подогнать.
  • Индекс первой строки, индекс первой строки столбца.
  • Индекс последней строки, индекс последней строки столбца.

Метод AutoFitColumn проверяет содержимое всех строк в столбце и затем автоматически подгоняет его.

#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();
}

Как автоматически подогнать строки для объединенных ячеек

С помощью Aspose.Cells возможно автоматически подгонять строки даже для ячеек, объединённых с помощью API AutoFitterOptions. Класс AutoFitterOptions предоставляет свойство GetAutoFitMergedCellsType(), которое можно использовать для автоматической подгонки строк для объединённых ячеек. GetAutoFitMergedCellsType() принимает перечисление AutoFitMergedCellsType, которое включает следующие значения:

  • None: игнорировать объединённые ячейки.
  • FirstLine: расширяет только высоту первой строки.
  • LastLine: расширяет только высоту последней строки.
  • EachLine: расширяет высоту каждой строки.
#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();
}

Важно знать

Дополнительные темы