Автоматическая подгонка строк и столбцов с Node.js через C++

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

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

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

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

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const inputPath = path.join(dataDir, "Book1.xlsx");

// Reading the Excel file into a buffer
const fs = require("fs");
const fileBuffer = fs.readFileSync(inputPath);

// Opening the Excel file through the buffer
const workbook = new AsposeCells.Workbook(fileBuffer);

// Accessing the first worksheet in the Excel file
const worksheet = workbook.getWorksheets().get(0);

// Auto-fitting the 3rd row of the worksheet
worksheet.autoFitRow(1);

// Saving the modified Excel file
const outputPath = path.join(dataDir, "output.xlsx");
workbook.save(outputPath);

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

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

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

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

const AsposeCells = require("aspose.cells.node");
const path = require("path");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const inputPath = path.join(dataDir, "Book1.xlsx");

// Reading the Excel file into a buffer
const fs = require("fs");
const fileData = fs.readFileSync(inputPath);

// Opening the Excel file through the buffer
const workbook = new AsposeCells.Workbook(fileData);

// Accessing the first worksheet in the Excel file
const worksheet = workbook.getWorksheets().get(0);

// Auto-fitting the 3rd row of the worksheet
worksheet.autoFitRow(1, 0, 5);

// Saving the modified Excel file
workbook.save(path.join(dataDir, "output.xlsx"));

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

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

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

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

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const inputPath = path.join(dataDir, "Book1.xlsx");

// Creating a file stream containing the Excel file to be opened
const fs = require("fs");
const workbook = new AsposeCells.Workbook(fs.readFileSync(inputPath));

// Accessing the first worksheet in the Excel file
const worksheet = workbook.getWorksheets().get(0);

// Auto-fitting the Column of the worksheet
worksheet.autoFitColumn(4);

// Saving the modified Excel file
workbook.save(path.join(dataDir, "output.xlsx"));

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

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

  • None: игнорировать объединённые ячейки.
  • FirstLine: расширяет только высоту первой строки.
  • LastLine: расширяет только высоту последней строки.
  • EachLine: расширяет высоту каждой строки.
const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const outputDir = path.join(dataDir, "output");

// Instantiate a new Workbook
const wb = new AsposeCells.Workbook();

// Get the first (default) worksheet
const worksheet = wb.getWorksheets().get(0);

// Create a range A1:B1
const 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("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog....end");

// Create a style object
const 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
const options = new AsposeCells.AutoFitterOptions();

// Set auto-fit for merged cells
options.setAutoFitMergedCellsType(AsposeCells.AutoFitMergedCellsType.EachLine);

// Autofit rows in the sheet (including the merged cells)
worksheet.autoFitRows(options);

// Save the Excel file
wb.save(path.join(outputDir, "AutofitRowsforMergedCells.xlsx"));

Важно знать

Продвинутые темы