java - poi - exportar base de datos sqlite android a excel
Fusionar celdas en Excel usando Apache POI (4)
Hice un método que combina células y pone borde.
protected void setMerge(Sheet sheet, int numRow, int untilRow, int numCol, int untilCol, boolean border) {
CellRangeAddress cellMerge = new CellRangeAddress(numRow, untilRow, numCol, untilCol);
sheet.addMergedRegion(cellMerge);
if (border) {
setBordersToMergedCells(sheet, cellMerge);
}
}
protected void setBordersToMergedCells(Sheet sheet, CellRangeAddress rangeAddress) {
RegionUtil.setBorderTop(BorderStyle.MEDIUM, rangeAddress, sheet);
RegionUtil.setBorderLeft(BorderStyle.MEDIUM, rangeAddress, sheet);
RegionUtil.setBorderRight(BorderStyle.MEDIUM, rangeAddress, sheet);
RegionUtil.setBorderBottom(BorderStyle.MEDIUM, rangeAddress, sheet);
}
¿Hay alguna otra manera de combinar celdas en Excel usando la biblioteca de POI de Apache?
Estaba intentando usar lo siguiente, pero no funciona
// selecting the region in Worksheet for merging data
CellRangeAddress region = CellRangeAddress.valueOf("A" + rowNo + ":D"
+ rowNo);
// merging the region
sheet1.addMergedRegion(region);
La mejor respuesta
sheet.addMergedRegion(new CellRangeAddress(start-col,end-col,start-cell,end-cell));
Puede usar sheet.addMergedRegion(rowFrom,rowTo,colFrom,colTo);
ejemplo sheet.addMergedRegion(new CellRangeAddress(1,1,1,4));
se fusionará de B2 a E2. Recuerde que es indexación basada en cero (por ejemplo, POI versión 3.12).
para obtener más detalles, consulte la Guía de BusyDeveloper
Puedes usar :
sheet.addMergedRegion(new CellRangeAddress(startRowIndx, endRowIndx, startColIndx,endColIndx));
Asegúrese de que CellRangeAddress no coincida con otras regiones fusionadas, ya que generará una excepción.
- Si desea fusionar celdas una encima de otra, mantenga los índices de columna iguales
- Si desea fusionar celdas que están en una sola fila, mantenga los índices de fila iguales
- Los índices están basados en cero
Por lo que estabas tratando de hacer esto debería funcionar:
sheet.addMergedRegion(new CellRangeAddress(rowNo, rowNo, 0, 3));