Can I just confirm that you are referring to the values in column E please?
These are the only formulae that I can find at present though I do have to
admit I have not looked through the sheets contents throughly yet.

Yours

Mark B


Siva_Masilamani wrote:
> 
> Well
> 
> I did follow the step you mentioned and it seems the cell is of string.
> 
> Also when i try to get the cell style and read the format it shows the
> number as 49 and the format string as @ for all other cells prior to this
> and it still throws the same error for this cell but display the cell
> format as 49.
> 
> So i guess the api consides once the cell type is formula it uses parse
> double to get the value where it fails as the data contains other
> characters too.
> 
> For your reference i have attached the excel file and the style file.
> 
> Jankiraman, Radhakrishnan wrote:
>> 
>> Let me first apologize for not reading your complete email. Something
>> with my outlook that gave me the impression that there isn't much content
>> below. There seems to be something really wrong in this case. From the
>> stack trace, it looks like the cell type is reported to be numeric by the
>> getCellType() call, but the date format utility breaks while trying to
>> extract the double value for the cell which shouldn't happen. This seems
>> like a bug to me. 
>> 
>> Try opening the .xlsx file with an archive utility like WinZip. Unzip the
>> contents. The sheet content is stored under 'xl\worksheets' folder with
>> sheets being numbered. Locate your sheet and inspect its contents. The
>> styles are stored in 'styles.xml' in the 'xl' folder. 
>> 
>> You should try taking a look at what the XML looks like for this cell
>> content. Check the attributes 't' and 's' for that cell and also what the
>> content for the cell looks like. If the cell is indeed numeric then the
>> value of 't' must be 'n' and you can also see the value of 's'. It must
>> be a number that points to the style index in the workbook styles
>> section. The styles are kept in a separate xml 
>> 
>> But as MSB has suggested in another reply, you should get hold of the
>> cell style. From the cell style you'll get the format index. From the
>> format index you can get the format string. And that format string cannot
>> be directly used as a java format. The format conventions are not exactly
>> similar between java and excel. Have you tried reading the cell value "as
>> a string" ? Unless you need the typed cell value, you might be better off
>> just extracting the formatted string as is.
>> 
>> -Rk
>> 
>> __________________________
>> Radhakrishnan Jankiraman
>> (o) +91.20-30239400 extn 520 (c) +91.9822006056
>> 
>> 
>> -----Original Message-----
>> From: Siva_Masilamani [mailto:saachins...@yahoo.co.in] 
>> Sent: Wednesday, June 16, 2010 8:29 AM
>> To: user@poi.apache.org
>> Subject: RE: Read Custom format cell value
>> 
>> 
>> Thanks again.
>> 
>> But i was reading the api and came to know that we can define our own
>> format
>> using DataFormatter class like the pre defined format like ssn,us phone
>> number,zip code etc.
>> 
>> But i just don't know how to do that.
>> 
>> Just incase will that help me...if so could you please provide some help
>> on
>> that.
>> 
>> 
>> Jankiraman, Radhakrishnan wrote:
>>> 
>>> Ok. I should have clarified that my suggestion was to use the 'ss' user
>>> model APIs introduced in 3.6. These are set of interfaces that provide a
>>> way to write code that will work for both xlsx and xls formats ( XSSF
>>> and
>>> HSSF in the POI world ). So that leads to another question which version
>>> of POI are you using ? 
>>> 
>>> If you don't have control over the format, then no luck. 
>>> 
>>> -Rk
>>> 
>>> 
>>> -----Original Message-----
>>> From: Siva_Masilamani [mailto:saachins...@yahoo.co.in] 
>>> Sent: Wednesday, June 16, 2010 4:57 AM
>>> To: user@poi.apache.org
>>> Subject: RE: Read Custom format cell value
>>> 
>>> 
>>> Hi
>>> 
>>> Thanks for your reply.
>>> 
>>> The file is of type xlsx.
>>> We are receiving this file from our client and we are in no control of
>>> alter
>>> the file except reading the data and processing it and storing it in the
>>> database.
>>> 
>>> Also another problem is the same file contains other cells with numeric
>>> value and i do not want to alter those values and want to read them as
>>> it
>>> is.
>>> 
>>> There are only two fields that are in this format that i need to read.
>>> 
>>> Im pretty new to this api and learning it at my best and are out of
>>> ideas
>>> right now.
>>> 
>>> i am not sure where should i write the code you have given.
>>> 
>>> Please help.
>>> 
>>> 
>>> 
>>> 
>>> Jankiraman, Radhakrishnan wrote:
>>>> 
>>>> Btw, you didn't mention the format of your spreadsheet ( i.e. xls or
>>>> xlsx
>>>> ). I believe the reference should be useful irrespective of that.
>>>> 
>>>> -----Original Message-----
>>>> From: Jankiraman, Radhakrishnan 
>>>> Sent: Wednesday, June 16, 2010 2:32 AM
>>>> To: 'POI Users List'
>>>> Subject: RE: Read Custom format cell value
>>>> 
>>>> This is how you try to get a format
>>>> 
>>>>            CreationHelper creationHelper = workbook.getCreationHelper();
>>>> 
>>>> //If this format is one of the default formats, will return the format
>>>> index else will create a new format and return its index.
>>>>            short formatIndex =
>>>> creationHelper.createDataFormat().getFormat(format); 
>>>>            CellStyle cellStyle = workbook.createCellStyle();
>>>>            cellStyle.setDataFormat(formatIndex);
>>>>            Cell someCell.setCellStyle(cellStyle);
>>>> 
>>>> 
>>>> Not sure why the cell is of formula type. You should refer to the Open
>>>> XML
>>>> format reference to understand how to include text in a number format.
>>>> Refer to section 3.8.30 in the Spreadsheet Markup Reference [1]
>>>> 
>>>> -Rk
>>>> 
>>>> [1]
>>>> http://www.ecma-international.org/publications/standards/Ecma-376.htm
>>>> ( Download Part 4 which contains the complete OOXML reference )
>>>> 
>>>> 
>>>> -----Original Message-----
>>>> From: Siva_Masilamani [mailto:saachins...@yahoo.co.in] 
>>>> Sent: Tuesday, June 15, 2010 10:52 PM
>>>> To: user@poi.apache.org
>>>> Subject: Read Custom format cell value
>>>> 
>>>> 
>>>> Hi 
>>>> 
>>>> I am using apache poi api to read data from the excel file and having
>>>> problem with particular data format. 
>>>> 
>>>> One of the coumns in the excel file had formula type whose value will
>>>> be
>>>> in
>>>> the below format 
>>>> 
>>>> "2001-160101100-22110-0000-000" 
>>>> 
>>>> Note : the no of digits between each dash and the number of dash itself
>>>> may
>>>> vary but the format will always be numbers followed by - and end with
>>>> numbers. 
>>>> 
>>>> The api successfully find the field type as formula and consider it as
>>>> numeric type but it throws NumberFormatException as it contains -. 
>>>> 
>>>> I am using DataFormat class to read all the numeric cell value as we
>>>> need
>>>> to
>>>> read the data as it is (no round up or truncate) in the cell value. 
>>>> 
>>>> I was going through the genral format available in the api but could
>>>> not
>>>> understand how to add custom format to the list of available formats. 
>>>> I was trying to use DataFormat.addFormat(String,Format) from the api
>>>> but
>>>> did
>>>> not understand what to pass in the String argument and how to define
>>>> the
>>>> Format for this custom format. 
>>>> 
>>>> Your help is appreciated. 
>>>> 
>>>> 
>>>>    public String getCellValue(Cell cell) {   
>>>>         String retVal;   
>>>>         if (cell == null) {   
>>>>             return "";   
>>>>         }   
>>>>         switch (cell.getCellType()) {   
>>>>   
>>>>             case Cell.CELL_TYPE_BLANK:   
>>>>                 retVal = "";   
>>>>                 break;   
>>>>   
>>>>             case Cell.CELL_TYPE_BOOLEAN:   
>>>>                 retVal = "" + cell.getBooleanCellValue();   
>>>>                 break;   
>>>>   
>>>>             case Cell.CELL_TYPE_STRING:   
>>>>                 retVal = cell.getStringCellValue();   
>>>>                 System.out.print(retVal + " ");   
>>>>                 break;   
>>>>   
>>>>             case Cell.CELL_TYPE_NUMERIC:   
>>>>                 retVal = isNumberOrDate(cell);   
>>>>                 System.out.print(retVal + " ");   
>>>>                 break;   
>>>>   
>>>>             case Cell.CELL_TYPE_FORMULA:   
>>>>                 retVal = isNumberOrDate(cell);   
>>>>                 System.out.print(retVal + " ");   
>>>>                 break;   
>>>>   
>>>>             default:   
>>>>                 retVal = "";   
>>>>         }   
>>>>         return retVal;   
>>>>     }   
>>>>   
>>>>     private String isNumberOrDate(Cell cell) {   
>>>>         String retVal;   
>>>>         if (HSSFDateUtil.isCellDateFormatted(cell)) {   
>>>>             DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");   
>>>>             retVal = formatter.format(cell.getDateCellValue());   
>>>>   
>>>>         } else {   
>>>>             DataFormatter df = new DataFormatter();   
>>>>             //This is where i am trying to add the custom format to the
>>>> list
>>>> to already available formats.   
>>>>             //DecimalFormat def=new DecimalFormat("#-#");    
>>>>             //df.addFormat("", def);   
>>>>             retVal = df.formatCellValue(cell);   
>>>>         }   
>>>>         return retVal;   
>>>>     }    
>>>>    public String getCellValue(Cell cell) {
>>>>         String retVal;
>>>>         if (cell == null) {
>>>>             return "";
>>>>         }
>>>>         switch (cell.getCellType()) {
>>>> 
>>>>             case Cell.CELL_TYPE_BLANK:
>>>>                 retVal = "";
>>>>                 break;
>>>> 
>>>>             case Cell.CELL_TYPE_BOOLEAN:
>>>>                 retVal = "" + cell.getBooleanCellValue();
>>>>                 break;
>>>> 
>>>>             case Cell.CELL_TYPE_STRING:
>>>>                 retVal = cell.getStringCellValue();
>>>>                 System.out.print(retVal + " ");
>>>>                 break;
>>>> 
>>>>             case Cell.CELL_TYPE_NUMERIC:
>>>>                 retVal = isNumberOrDate(cell);
>>>>                 System.out.print(retVal + " ");
>>>>                 break;
>>>> 
>>>>             case Cell.CELL_TYPE_FORMULA:
>>>>                 retVal = isNumberOrDate(cell);
>>>>                 System.out.print(retVal + " ");
>>>>                 break;
>>>> 
>>>>             default:
>>>>                 retVal = "";
>>>>         }
>>>>         return retVal;
>>>>     }
>>>> 
>>>>     private String isNumberOrDate(Cell cell) {
>>>>         String retVal;
>>>>         if (HSSFDateUtil.isCellDateFormatted(cell)) {
>>>>             DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
>>>>             retVal = formatter.format(cell.getDateCellValue());
>>>> 
>>>>         } else {
>>>>             DataFormatter df = new DataFormatter();
>>>>             //This is where i am trying to add the custom format to the
>>>> list
>>>> to already available formats.
>>>>             //DecimalFormat def=new DecimalFormat("#-#"); 
>>>>             //df.addFormat("", def);
>>>>             retVal = df.formatCellValue(cell);
>>>>         }
>>>>         return retVal;
>>>>     }   
>>>> 
>>>> 
>>>> java.lang.NumberFormatException: For input string:
>>>> "2001-160101100-22110-0000-000" 
>>>> at
>>>> java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
>>>>  
>>>> at
>>>> java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1207) 
>>>> at java.lang.Double.parseDouble(Double.java:220) 
>>>> at
>>>> org.apache.poi.xssf.usermodel.XSSFCell.getNumericCellValue(XSSFCell.java:197)
>>>>  
>>>> at
>>>> org.apache.poi.ss.usermodel.DateUtil.isCellDateFormatted(DateUtil.java:278)
>>>>  
>>>> at
>>>> com.excel.reader.ExcelDataReader.isNumberOrDate(ExcelDataReader.java:166) 
>>>> at
>>>> com.excel.reader.ExcelDataReader.getCellValue(ExcelDataReader.java:154) 
>>>> at com.excel.reader.ExcelDataReader.process(ExcelDataReader.java:118) 
>>>> at com.excel.reader.ExcelDataReader.main(ExcelDataReader.java:249) 
>>>> Exception in thread "main" ACBS 2001 7528080 Java Result: 1 
>>>>  
>>>> 
>>>> -- 
>>>> View this message in context:
>>>> http://old.nabble.com/Read-Custom-format-cell-value-tp28894102p28894102.html
>>>> Sent from the POI - User mailing list archive at Nabble.com.
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscr...@poi.apache.org
>>>> For additional commands, e-mail: user-h...@poi.apache.org
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscr...@poi.apache.org
>>>> For additional commands, e-mail: user-h...@poi.apache.org
>>>> 
>>>> 
>>>> 
>>> 
>>> -- 
>>> View this message in context:
>>> http://old.nabble.com/Read-Custom-format-cell-value-tp28894102p28897577.html
>>> Sent from the POI - User mailing list archive at Nabble.com.
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscr...@poi.apache.org
>>> For additional commands, e-mail: user-h...@poi.apache.org
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscr...@poi.apache.org
>>> For additional commands, e-mail: user-h...@poi.apache.org
>>> 
>>> 
>>> 
>> 
>> -- 
>> View this message in context:
>> http://old.nabble.com/Read-Custom-format-cell-value-tp28894102p28898543.html
>> Sent from the POI - User mailing list archive at Nabble.com.
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@poi.apache.org
>> For additional commands, e-mail: user-h...@poi.apache.org
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@poi.apache.org
>> For additional commands, e-mail: user-h...@poi.apache.org
>> 
>> 
>> 
>  http://old.nabble.com/file/p28904075/styles.xml styles.xml 
> http://old.nabble.com/file/p28904075/sheet1.xml sheet1.xml 
> http://old.nabble.com/file/p28904075/SPD_REF_QRM_PLANNING_RC_20100531.xlsx
> SPD_REF_QRM_PLANNING_RC_20100531.xlsx 
> 

-- 
View this message in context: 
http://old.nabble.com/Read-Custom-format-cell-value-tp28894102p28906424.html
Sent from the POI - User mailing list archive at Nabble.com.


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

Reply via email to