poi-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anthony Andrews <pythonadd...@yahoo.com>
Subject RE: Generated Excel - column count
Date Mon, 23 Jul 2007 19:03:26 GMT
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 <MKhammammettu@calcas.com> 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


From: Anthony Andrews [mailto:pythonaddict@yahoo.com]
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

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

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);
       cellNumber = cellNumber + 1;

I save like this:

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;


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

Be a better Globetrotter. Get better travel answers from someone who knows.
Yahoo! Answers - Check it out. 

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

Park yourself in front of a world of choices in alternative vehicles.
Visit the Yahoo! Auto Green Center.
  • Unnamed multipart/alternative (inline, 8-Bit, 0 bytes)
View raw message