使用Node.js通过C++自动调整合并单元格的行高
Contents
[
Hide
]
Microsoft Excel提供了一个功能,可以根据内容自动调整单元格的高度。该功能称为自动调整行高。Microsoft Excel不会本机设置合并单元格的自动调整操作。有时,这项功能对于真正需要在合并单元格上实现自动调整行高的用户来说是至关重要的。
如何使用AutoFitMergedCellsType自动调整行高
Aspose.Cells for Node.js via C++通过AutoFitterOptions.autoFitMergedCellsTypeAPI支持此功能。使用该API,可以自动调整工作表(包括合并单元格中的行)。以下是所有可能的自动调整合并单元格类型列表:
- 无
- 首行
- 末行
- 每行
自动调整合并单元格的行高
见以下代码,它创建了一个工作簿对象并添加了多个工作表。对每个工作表使用不同的方法进行自动调整。截屏显示了运行样例代码后的结果。

Node.js示例代码
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "sample.xlsx");
// Instantiating a Workbook object
const workbook = new AsposeCells.Workbook();
// Obtaining the reference of the newly added worksheet
const sheet1 = workbook.getWorksheets().get(0);
// Create a range A1:B2
const range = sheet1.getCells().createRange(0, 0, 2, 2);
// Merge the cells
range.merge();
// Insert value to the merged cell A1
sheet1.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 = sheet1.getCells().get(0, 0).getStyle();
// Set wrapping text on
style.setIsTextWrapped(true);
// Apply the style to the cell
sheet1.getCells().get(0, 0).setStyle(style);
// Create an object for AutoFitterOptions
const options = new AsposeCells.AutoFitterOptions();
// Only expands the height of the first row.
options.setAutoFitMergedCellsType(AsposeCells.AutoFitMergedCellsType.FirstLine);
// Autofit rows in the sheet (including the merged cells)
sheet1.autoFitRows(options);
let index = workbook.getWorksheets().add();
const sheet2 = workbook.getWorksheets().get(index);
sheet2.setName("Sheet2");
// Create a range A1:B2
const range2 = sheet2.getCells().createRange(0, 0, 2, 2);
// Merge the cells
range2.merge();
// Insert value to the merged cell A1
sheet2.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 style2 = sheet2.getCells().get(0, 0).getStyle();
// Set wrapping text on
style2.setIsTextWrapped(true);
// Apply the style to the cell
sheet2.getCells().get(0, 0).setStyle(style2);
// Create an object for AutoFitterOptions
const options2 = new AsposeCells.AutoFitterOptions();
// Only expands the height of the last row.
options2.setAutoFitMergedCellsType(AsposeCells.AutoFitMergedCellsType.LastLine);
// Autofit rows in the sheet (including the merged cells)
sheet2.autoFitRows(options2);
index = workbook.getWorksheets().add();
const sheet3 = workbook.getWorksheets().get(index);
sheet3.setName("Sheet3");
// Create a range A1:B2
const range3 = sheet3.getCells().createRange(0, 0, 2, 2);
// Merge the cells
range3.merge();
// Insert value to the merged cell A1
sheet3.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 style3 = sheet3.getCells().get(0, 0).getStyle();
// Set wrapping text on
style3.setIsTextWrapped(true);
// Apply the style to the cell
sheet3.getCells().get(0, 0).setStyle(style3);
// Create an object for AutoFitterOptions
const options3 = new AsposeCells.AutoFitterOptions();
// Only expands the height of each row.
options3.setAutoFitMergedCellsType(AsposeCells.AutoFitMergedCellsType.EachLine);
// Autofit rows in the sheet (including the merged cells)
sheet3.autoFitRows(options3);
index = workbook.getWorksheets().add();
const sheet4 = workbook.getWorksheets().get(index);
sheet4.setName("Sheet4");
// Create a range A1:B2
const range4 = sheet4.getCells().createRange(0, 0, 2, 2);
// Merge the cells
range4.merge();
// Insert value to the merged cell A1
sheet4.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 style4 = sheet4.getCells().get(0, 0).getStyle();
// Set wrapping text on
style4.setIsTextWrapped(true);
// Apply the style to the cell
sheet4.getCells().get(0, 0).setStyle(style4);
// Create an object for AutoFitterOptions
const options4 = new AsposeCells.AutoFitterOptions();
// Ignore merged cells.
options4.setAutoFitMergedCellsType(AsposeCells.AutoFitMergedCellsType.None);
// Autofit rows in the sheet (not including the merged cells)
sheet4.autoFitRows(options4);
// Save the Excel file
workbook.save("out.xlsx");