Detect Merged Cells in a Worksheet
In Microsoft Excel, several cells can be merged into one. This is often used to create complex tables or to create a cell that holds a heading that spans several columns.
Aspose.Cells allows you to identify merged cell areas in a worksheet. You can unmerge them too. This article provides the simplest lines of code for performing the task using Aspose.Cells.
This article provides compact instructions on how to find and then unmerge merged cells in a worksheet.
Demonstration
This example uses a template Microsoft Excel file called MergeTrial. It has some merged cell areas in a sheet also called Merge Trial.
The template file
Aspose.Cells provides the Cells.getMergedCells() method which is used to get all merged cells.
When the code below is executed, it clears the contents of the sheet and unmerges all the cell areas before saving the file again.
The Output File
Code Example
Please see the following sample code to find how to identify merged cell areas in a worksheet and unmerge them.
// 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"); |