Encoding problem in JExcel

Javi picture Javi · Apr 18, 2011 · Viewed 13.6k times · Source

I am loading an excel file in an GAE/Java application with JExcel like this:

The html form to upload the file islike this:

<form id="" action="/save" method="post" enctype="multipart/form-data" accept-charset="ISO-8859-1">
    <input name="file" type="file" value="load"/>
    <input type="submit"value="load excel"/>
</form>

and in the server I have:

ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iterator = upload.getItemIterator(request);
while (iterator.hasNext()) {
    FileItemStream item = iterator.next();
    InputStream stream = item.openStream();
    if (!item.isFormField()) {
        //if it's not a form field it's a file

        Workbook workbook = Workbook.getWorkbook(stream);
        ...
        String name = sheet.getCell(COL_NUMBER, row).getContents();
    }
}

The problem is that if I write in the cell something like 'city ó' when it reads in the server the variable name is ' city ?'. The encoding is not OK.

I've tried to change accept-charset="ISO-8859-1" (setting it to utf-8 or removing it) but with no success.

Can anyone tell me how could I solve this problem.

Thanks

Answer

Javi picture Javi · Apr 18, 2011

OK, I got it by doing this:

WorkbookSettings ws = new WorkbookSettings();
ws.setEncoding("Cp1252");
Workbook workbook = Workbook.getWorkbook(stream, ws);