// det skal legges til en summeringsformel p� sluttet
if (sumFormula != null) {
sumFormula.setFromRow(l + 1);
}
HSSFCell cell;
String groupValue = "";
List<ExcelGroupSum> formulaCells = new ArrayList<ExcelGroupSum>();
String groupSumValue = "";
ExcelGroupSum currentExcelGroupSum = null;
// G�r gjennom alle rader og kolonner
for (j = currentRow; j < rowCount + currentRow; j++) {
rowNumber++;
// dersom data skal grupperes
if (groupColumn != null
&& !table.getValueAt(j - currentRow, groupColumn).equals(
groupValue)) {
// setter forrige grupperingssum
if (currentExcelGroupSum != null) {
currentExcelGroupSum.setToRow((short) (l));
formulaCells.add(currentExcelGroupSum);
groupSumValue = "";
currentExcelGroupSum = null;
rowNumber = 1;
}
// henter grupperingsverdi og setter ny overskrift for
// gruppering
groupValue = (String) table.getValueAt(j - currentRow,
groupColumn);
row = excelSheet.createRow((short) l);
createCell(row, cellStyle.getGroupStyle(),
(short) (startCell - addedColumn), groupValue);
excelSheet.addMergedRegion(new Region((short) l, (short) 0,
(short) l, (short) (columnCount + addedColumn
- notVisibleColumnsSize - 1)));
l++;
}
setLabelInfo(labelInfo, infoString, j);
row = excelSheet.createRow((short) l);
l++;
// dersom det skal skrives ut rad nummer
if (writeRowNumber) {
cell = row.createCell((short) (startCell - 1));
cell.setCellValue(rowNumber);
}
// g�r gjennom alle kolonner for rad
for (k = startCell; k < columnCount + startCell; k++) {
// dersom kolonne skal v�re synlig
if (notVisibleColumns == null
|| !notVisibleColumns.contains(k - startCell)) {
setColumnSize(colSize, excelSheet, startCell, addedColumn,
k);
cell = row.createCell((short) k);
// dersom celle har verdi
if (table.getValueAt(j - currentRow, k - startCell) != null) {
// dersom det er grupperingssum satt og den er ulik
// forrige
if (groupSumValueColumn != null
&& !table.getValueAt(j - currentRow,
groupSumValueColumn).equals(
groupSumValue)) {
groupSumValue = (String) table.getValueAt(j
- currentRow, groupSumValueColumn);
if (currentExcelGroupSum != null) {
currentExcelGroupSum.setToRow((short) (l - 1));
formulaCells.add(currentExcelGroupSum);
}
if (groupResultColumn != null
&& groupSumColumn != null) {
currentExcelGroupSum = new ExcelGroupSum(
(short) l,
row
.createCell((short) (groupResultColumn
.shortValue() + addedColumn)),
groupSumColumn.shortValue(),
DayEnum.getDayColorIndex(groupSumValue),
wb.createCellStyle());
}
}
cell.setCellStyle(cellStyle.createDayStyle(false,
groupSumValue));
setCellValueForNotSumColumn(table, numberCols,
groupResultColumn, currentRow, startCell, cell,
j, k);
// dersom celle ikke har verdi settes den til tomstreng
// for � f� med eventuell formatering
} else {
cell
.setCellStyle(cellStyle.getDayStyle(wrapText,
null));
cell.setCellValue(new HSSFRichTextString(""));
}
}
}
}
// det skal legges til en summeringsformel p� sluttet