an I ask what changes you are making to the file? Excel is quite picky and will 'see' that change has been made to a cell even if - to us - it seems completely empty. That may be the reason why you are seeing this problem.
Modha Khammammettu <[EMAIL PROTECTED]> wrote: In my test I have 6 columns. After I programmatically create the file and read for no. of columns using getLastCellNum() I get 5 After I open and make a change and then read for the no of columns using getLastCellNum() I get 6 Note: This happens only for programmatically generated Excel files. Not the one that get created manually. ________________________________ From: Anthony Andrews [mailto:[EMAIL PROTECTED] Sent: Sun 7/22/2007 11:39 PM To: POI Users List Subject: Re: Generated Excel - column count Just as with an array structure in Java, POI numbers columns starting from zero and not one - or A - as Excel does. Therefore, if you have six columns on the sheet these will be numbered 0 to 5 and that is why - at least I think that is why - the getNumberOfColumns() method seems to return an incorrect figure. PS It helps if you are simply iterating through the columns using a loop to have this happen IMO. Modha Khammammettu wrote: Hi All I am using POI 3.0 rc4 I get wrong column count when I read excel file I created. I use the following method to get Column count: public int getNumberOfColumns(int sheetNumber){ HSSFRow row = getRow(sheetNumber,2); return row.getLastCellNum(); } I always get 1 column less than what I have. If I have 6 columns I get only 5 as return value. However, when I open the excel file and make a smal change (any change like adjusting column width etc) and save it, the same getNumberOfColumns method returns correct columns. Is there any solution for this problem. Please let me know. I create excel file programatically ExcelFile excel = new ExcelFile(); excel.createWorkBook(); I add rows like this: public void addRow(int sheetNumber, String content){ HSSFSheet sheet = (HSSFSheet)wb.getSheetAt(sheetNumber); HSSFRow row = sheet.createRow(currentRowNumberBeingAdded); currentRowNumberBeingAdded = currentRowNumberBeingAdded + 1; StringTokenizer st = new StringTokenizer(content,"~"); int cellNumber = 0; while (st.hasMoreTokens()){ HSSFCell cell = row.createCell((short)cellNumber); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue(st.nextToken()); cellNumber = cellNumber + 1; } } I save like this: excel.saveWorkBook(destn); I import these: import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; Thanks --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------- Be a better Globetrotter. Get better travel answers from someone who knows. Yahoo! Answers - Check it out. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------- Park yourself in front of a world of choices in alternative vehicles. Visit the Yahoo! Auto Green Center.
