studio poi from exportar datos create crear archivo java android excel apache-poi

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));