检测工作表中的合并单元
在 Microsoft Excel 中,几个单元格可以合并成一个单元格。这通常用于创建复杂的表格或创建一个横跨多列的标题单元格。
Aspose.Cells 允许您识别工作表中的合并单元格区域。您也可以取消合并它们。本文提供了使用 Aspose.Cells 执行此任务的最简单代码行。
本文提供了如何在工作表中查找并取消合并合并单元格的简明说明。
演示
此示例使用名为 MergeTrial 的模板 Microsoft Excel 文件。该文件中的工作表也称为 Merge Trial 中有一些合并的单元格区域。
模板文件
Aspose.Cells提供Cells.getMergedCells()方法,用于获取所有合并的单元格。
当执行下面的代码时,它会清除工作表的内容并在再次保存文件之前取消所有单元格区域的合并。
输出文件
代码示例
请参阅以下示例代码,了解如何识别工作表中的合并单元格区域并取消合并它们。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DetectMergedCells.class); | |
// Instantiate a new Workbook | |
Workbook wkBook = new Workbook(dataDir + "MergeTrial.xls"); | |
// Get a worksheet in the workbook | |
Worksheet wkSheet = wkBook.getWorksheets().get("Merge Trial"); | |
// Clear its contents | |
wkSheet.getCells().clearContents(0, 0, wkSheet.getCells().getMaxDataRow(), | |
wkSheet.getCells().getMaxDataColumn()); | |
// Get all merged cell aeras | |
CellArea[] areas = wkSheet.getCells().getMergedAreas(); | |
// Define some variables | |
int frow, fcol, erow, ecol; | |
// Loop through the arraylist and get each cellarea to unmerge it | |
for (int i = areas.length - 1; i > -1; i--) | |
{ | |
frow = areas[i].StartRow; | |
fcol = areas[i].StartColumn; | |
erow = areas[i].EndRow; | |
ecol = areas[i].EndColumn; | |
wkSheet.getCells().unMerge(frow, fcol, erow, ecol); | |
} | |
// Save the excel file | |
wkBook.save(dataDir + "output_MergeTrial.xls"); |