Hi Chris, Hi Mark,

thank you very much for the quick response!

MSB wrote:
Just to expand a little on Chris's reply, when you are reading data from the
sheet, the correct way to use the HSSFDataFormatter class is something like
this;

HSSFDataFormatter formatter = new HSSFDataFormatter();
HSSFWorkbok workbook = new HSSFWorkbook...........
HSSFSheet sheet = workbook.getSheet(0);
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell(0);
System.out.println(formatter.formatCellValue(cell));

That way, the HSSFDataFormatter should use the cell style the user applied
to the cell when the created the workbook/worksheet and you ought to see
what you expect output to the screen.

Yours

Mark B


The HSSFDataFormatter.formatCellValue() function works fine and gives the expected results. However, again on Linux (plus OpenOffice) it didn't work for some reason. So I decided to reduce the number of complicating factors and to simply use a Windows machine for this project.


ChrisLott wrote:
Please don't assume that the view shown on the screen is a close match to the data stored internally! M$FT-Excel stores all numeric data as floating-point numbers. Then it applies suitable formatting and other rules when it displays to you. Working in POI you see the raw internal data. Storing and reading date/time values is a particular joy!

Re character encoding: POI has cell encoding features, and copes with UTF-8 and UTF-16. Java is perfectly capable of dealing with special characters. You don't mention where on Linux the data is "converted to question marks". Did you use an IDE like Eclipse and view the data right there immediately when it's read?
No, I ran the Java program (jar) on the command-line and printed the output to a text file. To see how it looks like directly in Netbeans, I just tried it out and there it is the same output (questions marks instead of special characters). Anyway, as I already said, the easiest workaround for now will be to run the program on a Windows machine... :-)

Best regards,
Felix




Also search Nabble for UTF-8 and encoding. I got this hit:

http://old.nabble.com/how-to-read-unicode-data-from-xls-sheet-td13601249.html#a13604018

chris...

p.s. Gruess aus New Jersey!


Felix Dreher wrote:
Hi all,

I'm trying to read Excel files (classes HSSFWorkbook, HSSFSheet, HSSFCell etc.). There are two issues that I'm currently struggling with:

1) non-ASCII characters like é or ü are read correctly on Windows, but not on Linux (where these characters are all converted to question marks). I tried to use the "Locale.setDefault(myLocale)" method, but with no success.

2) The tables I would like to read contain lots of whole numbers, which I would like to treat as strings because they are IDs or order numbers (i.e. I would like to simply read all cells in the same way as Excel displays them). However, they get read as decimal numbers, e.g. the number 1234 in an Excel table (formatted as 'General') becomes 1234.0 in its POI representation.
I tried two workarounds, but they didn't work:
a) open the Excel file, format all cells as Text, save.
b) use the HSSFDataFormatter class to define a 'Decimal format' with actually no decimals (e.g. DecimalFormat df = new DecimalFormat ("#"))

Any help would be greatly appreciated!

Thank you very much,
Felix
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]






--
___________________________________________________________

Felix Dreher
Max Planck Institute for Molecular Genetics
Department of Vertebrate Genomics
Bioinformatics Group

Ihnestr. 73 (mail) | Fabeckstr. 60-62 (visitors)
D-14195 Berlin, Germany
phone: +49-30-84131745 | mobile: +49-163-7542426
___________________________________________________________




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to