Index: lams_common/src/java/org/lamsfoundation/lams/util/excel/ExcelSheet.java =================================================================== diff -u -rf13b8a48b9a1cfaee56a654ba751a9736616b726 -r8e67b6d0ec8fb3999cdc8861665a34a62ead7646 --- lams_common/src/java/org/lamsfoundation/lams/util/excel/ExcelSheet.java (.../ExcelSheet.java) (revision f13b8a48b9a1cfaee56a654ba751a9736616b726) +++ lams_common/src/java/org/lamsfoundation/lams/util/excel/ExcelSheet.java (.../ExcelSheet.java) (revision 8e67b6d0ec8fb3999cdc8861665a34a62ead7646) @@ -1,35 +1,38 @@ package org.lamsfoundation.lams.util.excel; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; +import org.apache.poi.ss.util.CellRangeAddress; + /** * Excel sheet, containing Excel rows. - * + * * @author Andrey */ public class ExcelSheet { private String sheetName = ""; private List rows = new ArrayList<>(); - - public ExcelSheet() {} - + Set mergedCells = new HashSet<>(); + + public ExcelSheet() { + } + public ExcelSheet(String sheetName) { this.sheetName = sheetName; } - + /** * Add empty row. */ public void addEmptyRow() { rows.add(new ExcelRow()); } - + /** * Return row at the specified position in rows list. - * - * @param index - * @return */ public ExcelRow getRow(int index) { return rows.get(index); @@ -41,26 +44,32 @@ row.setBold(isBold); return row; } - + public ExcelRow initRow() { return initRow(false); } - + public void addRow(ExcelRow row) { rows.add(row); } - + public List getRows() { return rows; } + public void setRows(List rows) { - this.rows = rows;; + this.rows = rows; } - + public String getSheetName() { return sheetName; } + public void setSheetName(String sheetName) { - this.sheetName = sheetName;; + this.sheetName = sheetName; } -} + + public void addMergedCells(int row, int fromColumn, int toColumn) { + mergedCells.add(new CellRangeAddress(row, row, fromColumn, toColumn)); + } +} \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/util/excel/ExcelUtil.java =================================================================== diff -u -rf387f22d1d29e552262b9b538a3b46c1b766a3c7 -r8e67b6d0ec8fb3999cdc8861665a34a62ead7646 --- lams_common/src/java/org/lamsfoundation/lams/util/excel/ExcelUtil.java (.../ExcelUtil.java) (revision f387f22d1d29e552262b9b538a3b46c1b766a3c7) +++ lams_common/src/java/org/lamsfoundation/lams/util/excel/ExcelUtil.java (.../ExcelUtil.java) (revision 8e67b6d0ec8fb3999cdc8861665a34a62ead7646) @@ -42,6 +42,7 @@ import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellUtil; import org.apache.poi.ss.util.WorkbookUtil; import org.apache.poi.util.LocaleUtil; @@ -266,6 +267,11 @@ } } + // merge cells + for (CellRangeAddress mergedCells : excelSheet.mergedCells) { + sheet.addMergedRegion(mergedCells); + } + //autoSizeColumns for (int i = 0; i < maxCellsNumber; i++) { sheet.autoSizeColumn(i);