[]
        
立即试用
(Showing Draft Content)

自动合并单元格

GcExcel 允许您使用 IWorksheet 接口的 autoMerge 方法,为需要合并包含相同文本的相邻单元格的区域添加自动合并信息。autoMerge 方法启动自动合并操作,该操作仅在使用 XlsxSaveOptionsSjsSaveOptionsSerializationOptionsPdfSaveOptionsImageSaveOptionsHtmlSaveOptions 类的 setIncludeAutoMergedCells 方法将工作簿导出为 PDF、HTML、图像、.xlsx、.sjs 或 Json 时才会生效,且需将该方法设置为true。

autoMerge 方法具有以下参数,有助于添加和自定义自动合并操作:

参数名称

描述

range

自动合并的区域。

direction

自动合并的方向。默认值为 Column。

AutoMergeDirection 提供以下自动合并方向:

  • Row:按行方向应用自动合并。

  • Column:按列方向应用自动合并。

  • ColumnRow:优先按列方向应用自动合并,然后按行方向应用。

  • RowColumn:优先按行方向应用自动合并,然后按列方向应用。

  • None:取消自动合并。

mode

自动合并的模式。默认值为 Free。

AutoMergeMode 提供以下自动合并模式:

  • Free:当相邻单元格具有相同值时应用自动合并。

  • Restricted:当相邻单元格具有相同值且上一行或列中的相应单元格自动合并时应用自动合并。

selectionMode

自动合并的选择模式。默认值为 Source。

AutoMergeSelectionMode 提供以下自动合并选择模式:

  • Source:应用自动合并时选择单个单元格。这仅在 setIncludeAutoMergedCells 为 false 时生效。

  • Merged:应用自动合并时选择所有具有相同值的单元格。

注意:selectionMode 参数仅适用于SpreadJS。

请参考以下示例代码,为某个区域添加自动合并信息,并将工作簿导出为 .xlsx、.sjs、.pdf 和 .png 文件:

// 创建一个新工作簿。
var workbook = new Workbook();

// 打开现有工作簿。
workbook.open("Regional_Product_List.xlsx");

// 获取活动工作表。
var worksheet = workbook.getActiveSheet();

// 使用受限模式和合并选择模式添加自动合并区域。
worksheet.autoMerge(worksheet.getUsedRange(), AutoMergeDirection.Column, AutoMergeMode.Restricted, AutoMergeSelectionMode.Merged);

// 将IncludeAutoMergedCells设置为true以包含自动合并的单元格。
// 设置XlsxSaveOptions以将工作簿导出为XLSX文件。
XlsxSaveOptions xlsxOptions = new XlsxSaveOptions();
xlsxOptions.setIncludeAutoMergedCells(true);
        
// 设置SjsSaveOptions以将工作簿导出为.sjs文件。
SjsSaveOptions sjsOptions = new SjsSaveOptions();
sjsOptions.setIncludeAutoMergedCells(true);

// 设置PdfSaveOptions以将工作簿导出为PDF文件。
PdfSaveOptions pdfOptions = new PdfSaveOptions();
pdfOptions.setIncludeAutoMergedCells(true);

// 设置ImageSaveOptions以将工作簿导出为PNG文件。
ImageSaveOptions pngOptions = new ImageSaveOptions();
pngOptions.setIncludeAutoMergedCells(true);

// 将工作簿另存为XLSX文件。
workbook.save("AutoMerge.xlsx", xlsxOptions);

// 将工作簿另存为.sjs文件。
workbook.save("AutoMerge.sjs", sjsOptions);

// 将工作簿另存为PDF文件。
workbook.save("AutoMerge.pdf", pdfOptions);

// 将工作簿另存为PNG文件。
worksheet.toImage("AutoMerge.png", pngOptions);

未自动合并

自动合并后

before-auto-merge

auto-merge

注意

  • 如果区域相互交叉,自动合并操作将抛出异常。例如,“A1:C3, B2:D4”。

  • 如果区域与现有自动合并区域交叉,自动合并操作将抛出异常。

  • 如果区域包含多个区域,将为每个区域添加自动合并信息。例如,“A1:B2, D3:E4”。

  • 插入或删除行或列将影响自动合并区域。任何其他 API 操作不会影响自动合并区域。

  • 自动合并操作不会更改工作簿,因此 IRange 接口的 getMergeCells getMergeArea 方法无法获取自动合并操作的结果。

  • 如果 setIncludeAutoMergedCells 为 true,自动合并的单元格将作为普通跨距区域存储在 .xlsx、.sjs 和 .json 文件中。