poi-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Syed Hasan <smhasa...@hotmail.com>
Subject write in a sheet
Date Thu, 23 Feb 2012 15:58:41 GMT
Hi I'm reading a WorkBook using POi and then highlighting certain cells based on
my calculation.
If my workbook has only one sheet then its work fine; but if there are multiple
sheets then it gets scrued up. I'm doing something as follows:

for( each workBook){

  for(each workSheet){
    
     //do some calcualtion on the cells...
    
     highLightCells(workBook, workSheet, cellToHighLight)
  }
}

highLightCells(workBook, workSheet, cellToHighLight){

try{
   this.outputStream = new FileOutputStream(workbook.getFileName());

   String startPosition = maskingInfo.getStartPosition();
			ArrayList<Integer> startP = this.convertPosition(startPosition);

			String endPosition = maskingInfo.getEndPosition();
			ArrayList<Integer> endP = this.convertPosition(endPosition);

			// index=1 in both Lists(startP, endP) contain numeric digits of position.
			//eg: position = G23; startP.get(1) = 23

			//iterate through all rows after the columnHeaderRow
			for(int rowNum = startP.get(1); rowNum <= endP.get(1); rowNum++){			

				HSSFRow row = workSheet.getSheet().getRow(rowNum); // get the current row

 if (row == null) { // if any row is EMPTY, poi treats it as null
					continue;
				}

				// get the specific column
				HSSFCell cell = row.getCell(startP.get(0));

				if (cell == null) { 
					continue;
				}
				else{
					
HSSFCellStyle cellStyle = cell.getCellStyle();
					
//create and set a new font for this cell
					cellStyle.setFont(this.getCamoFont(workbook.getExcelWorkBook()));
					
					cellStyle.setFillForegroundColor(IndexedColors.LIGHT_GREEN.getIndex());
					cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);

				}

			}	

// write back to the workBook	
			workSheet.getSheet().getWorkbook().write(this.outputStream);
outputStream.flush();
outputStream.close();
}
catch (Exception e) {
  e.printStackTrace();
}

}

I guess, when POI is writing back to worksheet, I need to some how keep track
whether its finished before it goes to the next sheet. Any comments, how can I
do that? 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
For additional commands, e-mail: user-help@poi.apache.org


Mime
View raw message