# JExcelAPI (JXL) Encoding Problem



## M^K (2. Sep 2009)

Hallo,

ich arbeite mit der jxl.jar und mir ist es partou nicht gelungen, das Encoding auf UTF-8 zu stellen, sodass meine Umlaute stets als Symbole angezeigt werden.


```
WorkbookSettings ws = new WorkbookSettings();
		ws.setEncoding("UTF-8");
		ws.setCharacterSet(0);
   		Workbook sample = Workbook.getWorkbook(new File(path), ws);
    	WritableWorkbook sampleOutput = Workbook.createWorkbook(new File(path+"meinXLS.xls"), sample);
```

Der oben dargestellte Code lädt ein vorgefertigtes Template ein. Die Encodierung funktioniert leider nicht. Habt ihr eine Idee, was man noch probieren könnte?


Mit freundlichen Grüßen


----------



## LILA (23. Sep 2009)

Hallo,
ich bin heute auf das Selbe Problem gestossen.
Zusätzlich habe ich noch
[Java]
.setExcelDisplayLanguage("DE");
.setExcelRegionalSettings("DE");
[/Java]
zu den Settings hinzugefügt. Aber leider funktioniert es trotzdem nicht.
Hat jemand eine Idee?

Mit freundlichen Grüßen


----------



## LILA (23. Sep 2009)

So jetzt bin ich drauf gekommen:
Mit

```
.setEncoding("cp1252");
```
funktionierts.

Allerdings ist es dann nichtmehr UTF-8!


----------



## geke (12. Okt 2009)

Ich versuche ein Excel Datei folgendermaßen einzulesen.

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

Die Umlaute werden bei mir nicht erkannt. Habe schon verschieden Zeichensätze von Sun Java Supported Character Encodings ausprobiert.
Hat jemand eine Idee was ich noch versuchen könnte?
Vielen Dank.


----------



## xzell (13. Dez 2011)

Hi,
gibts dafür schon eine Lösung? (Auch wenn es schon 2 Jahre her ist)

Gruß


----------



## LILA (13. Dez 2011)

Hm,

genau weiß ich es nicht mehr, aber anscheinend habe ich es mit diesem Encoding (siehe mein letzter Post) gemacht...

Schöne Grüße und schönen Tag...


----------



## Wildcard (13. Dez 2011)

Excel wird vermutlich UTF-8 gar nicht unterstützen


----------



## bolda (22. Dez 2011)

Ich stand heute auch vor dem Problem.
Bei mir hat das 

```
WorkbookSettings ws = new WorkbookSettings();
ws.setEncoding("Cp1252");
Workbook w = Workbook.getWorkbook(sourceFile,ws);
```
das Problem gelöst.


----------



## algebraiker (30. Dez 2011)

Bei mir hat 


```
WorkbookSettings ws = new WorkbookSettings();
ws.setEncoding("ISO-8859-1");
ws.setExcelDisplayLanguage("DE");
ws.setExcelRegionalSettings("DE");
Workbook workbook = Workbook.getWorkbook(sourceFile, ws);
```

das Problem gelöst.


----------



## 5474n (12. Jan 2012)

Hallo,
ich bin neu hier und bin mir nicht sicher, ob mein Thema hier richtig ist. 
Wenn nicht, bitte verschieben oder darauf hinweisen wo es hin sol.


hiermit liest mein Programm eine xls datei ein und gibt sie auch, wie ich es will in der Konsole aus. 

```
private void read() throws IOException
	{
		File inputWorkbook = new File(inputFile);
		Workbook w;
		try
		{
			w = Workbook.getWorkbook(inputWorkbook);
			
			Sheet sheet = w.getSheet(0);
			

			int zeile = 0;
			int spalte = 1;
			for (spalte = 1; spalte < sheet.getColumns() - 1; spalte++)
			{
				for (zeile = 0; zeile < 5; zeile++)
				{

					Cell cell = sheet.getCell(zeile, spalte);
					System.out.println(cell.getContents());
				}
				System.out.println("");
			}
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
```

nun möchte ich die eingelesen Daten speichern. Dacht es funktioniert vllt so in der Art:

```
Fach = sheet.getCell(1,spalte).getContents();
				FachAuswahl = Integer.parseInt(Fach);

				interpret = sheet.getCell(2, spalte).getContents();

				titel = sheet.getCell(3, spalte).getContents();

				genre = sheet.getCell(4,spalte).getContents();

				kaufdatum = sheet.getCell(5, spalte).getContents();

				try{

				Main.DatenStaender.get(FachAuswahl).setiFachAuswahl(FachAuswahl);
				Main.DatenStaender.get(FachAuswahl).setSInterpret(interpret);
				Main.DatenStaender.get(FachAuswahl).setSTitel(titel);
				Main.DatenStaender.get(FachAuswahl).setSGenre(genre);
				Main.DatenStaender.get(FachAuswahl).setSKaufdatum(kaufdatum);

				}
				catch(Exception f)
                               {
					System.out.println("Fehler beim speichern");
				}
```

Mein Problem,  (wenn ich die Exceptin nicht abfange) bekomme ich eine NullPointerException.
Wieso sind meine Strings alle null obwohl sie doch initialisiert werden?

Danke und Grüße


----------



## xehpuk (12. Jan 2012)

Hey,

nein, du bist hier nicht richtig, es sei denn, dein Beitrag greift das Encoding-Problem auf, wonach es hier aber nicht aussieht. 
Ein neuer Thread wäre angemessen gewesen.

Zu deiner Frage: Du lieferst leider keinen Stacktrace mit. Ohne diesen wird man dir kaum weiterhelfen können.
Wie ich das nun sehe, liefert dir 
	
	
	
	





```
Main.DatenStaender.get(FachAuswahl)
```
 ein 
	
	
	
	





```
null
```
? Was ist "DatenStaender", wie sieht die Methode 
	
	
	
	





```
get(int)
```
 aus?


----------



## 5474n (12. Jan 2012)

Hallo,

okey, ich merks mir für die Zukunft 

der DatenStaender ist ein Vektor.

die 
	
	
	
	





```
get int
```
 sieht 
	
	
	
	





```
public int getiFachAuswahl()
	{
		return iFachAuswahl;
	}
```
so aus.

Ganz allgemein, wenn ich über jxl. eine Excel datei einlese, wie kann ich die beschriebenen Zellen abspeichern?


Edit:

ich habe mein Programm gedebuggt und will ein null element ändern.
prüfe nun ob mein Element zuvor null ist und lass dann ein neues Objekt erstellen


----------

