Обнаружение объединенных ячеек на листе
В Microsoft Excel несколько ячеек можно объединить в одну. Это часто используется для создания сложных таблиц или для создания ячейки, содержащей заголовок, который охватывает несколько столбцов.
Aspose.Cells позволяет определить объединенные области ячеек на листе. Вы также можете их разъединить. В этой статье приведены простейшие строки кода для выполнения этой задачи с использованием Aspose.Cells.
Эта статья дает краткие инструкции о том, как найти и затем разъединить объединенные ячейки на листе.
Демонстрация
В этом примере используется шаблонный файл Microsoft Excel под названием MergeTrial. В нем есть несколько объединенных областей ячеек на листе также называемого 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"); |