# SetCellValue deprecated?



## JJay-JJay (13. Sep 2011)

Hallo.

Ich arbeite mit Java und Excel mit der Schnittstelle Apache POI und versuche jetzt in eine Excel-Zelle zu schreiben. 

Diese Code-Zeile wird mir als 'deprecated' angezeigt. 

```
cell.setCellValue("a test");
```
Ist der Befehl veraltet? Auf der POI-Seite finde ich keine Alternative. Kann mir jemand weiterhelfen?

Für einen besseren Überblick hier das Code-Stück, aus dem die Zeile stammt:


```
// Formatieren und Rechnen
	void pb_verarbeiten_for_MouseClicked() {
		HSSFWorkbook wb = null;
		FileInputStream input = null;
		try {
			input = new FileInputStream(fpath);
			System.out.println("Pfad angekommen.");
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			System.out.println("fpath " + fpath);
			System.out.println("Pfad nicht gefunden.");
			Fehler fail = new Fehler();
			e.printStackTrace(); 
		}
		try {
			wb = new org.apache.poi.hssf.usermodel.HSSFWorkbook(input);
			System.out.println("Es funktioniert.");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			System.out.println("Pfad konnte nicht erfolgreich übernommen werden.");
			e.printStackTrace();
		}
		try {
			input.close();
		} catch (IOException e) {
			System.out.println("Fehler beim Schließen des FileInputStreams.");
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	    HSSFSheet sheet = wb.getSheetAt(0);
	    HSSFRow row = sheet.getRow(2);
	    HSSFCell cell = row.getCell((short) 3);
	    if (cell == null)
	        cell = row.createCell((short) 3);
	    cell.setCellValue("a test");
	    System.out.println("In die Zelle geschrieben.");

	    // Write the output to a file
	    FileOutputStream fileOut = null;
	    HSSFWorkbook wbOut = new HSSFWorkbook();
	    FileOutputStream fileOut1 = null;
	    System.out.println("FileOutput");
		try {
			fileOut1 = new FileOutputStream("Test.xls");
			 System.out.println("FielOutputStream erstellt.");
		} catch (FileNotFoundException e1) {
			System.out.println("Fehler beim Erstellen des FileOutputStreams.");
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	   
	    try {
			wb.write(fileOut1);
			 System.out.println("in FileOutput geschrieben.");
		} catch (IOException e) {
			System.out.println("Fehler beim Schreiben in den FileOutputStream.");
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	    try {
			fileOut1.close();
			 System.out.println("FileOutput geschlossen.");
		} catch (IOException e) {
			System.out.println("Fehler beim Schließen des FileOutputStreams.");
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
```

Danke im Voraus.

Grüße


----------



## faetzminator (13. Sep 2011)

Also in der Javadoc ist die Methode nicht als deprecated gekennzeichnet: Cell (POI API Documentation)


----------



## JJay-JJay (13. Sep 2011)

Ja, da habe ich auch als erstes geschaut und eben nichts gefunden, auch keine Alternative oder irgendeine Notiz, was der Fehler sein könnte. Deshalb hoffe ich, dass hier jemand mehr weiß als ich.  Oder noch eine andere Idee hat, wo man nachsehen könnte.


----------



## SlaterB (13. Sep 2011)

hier ist es deprecated:
HSSFCell (POI API Documentation)


einfache Suche
Google
HSSFCell.setCellValue(String) deprecated?

in neueren Versionen vielleicht wieder nicht mehr als so schlimm angesehen oder gerade erst ab neueren Versionen, 
und du hast noch ne alte, 
ist letztlich so egal, dass ich gar nicht erst versuche Versionsnummern zu suchen


----------



## JJay-JJay (13. Sep 2011)

Ah, vielen Dank. Dann hab ich wohl doof gegoogelt. Ich habe das gleich ausprobiert. Die Zeile lautet jetzt 
	
	
	
	





```
cell.setCellValue(HSSFRichTextString "a test");
```

Doch leider erkennt er das nicht. Die Fehlermeldung lautet:

```
HSSFRichTextString cannot be resolved to a variable line 336 Java Problem
Syntax error on token ""a test"", delete this token line 336 Java Problem
```

Er bietet mir auch nur an, eine Konstante oder Variable it dem Namen anzulegen, aber so habe ich das nicht verstanden. Muss ich es noch irgendwie importieren und er zeigt mir das nur nicht an? 

Danke im Voraus wieder.

Grüße


----------



## SlaterB (13. Sep 2011)

was ist denn das für eine Codezeile, man kann doch nicht ohne Sinn Zeichen aneinanderreihen?,
irgendwelche Programmierkenntnisse vorhanden oder kopierst du dir alles zusammen?..

dein Fehler ist in etwa derselbe wie eine Zeile

```
input = FileInputStream fpath;
```
die du in deinem Code schon besser hast (suchen und Verbesserung entsprechend übernehmen bitte selber)


----------



## Gast2 (13. Sep 2011)

Du musst die Klasse in der die Konstante definiert ist vorstellen. 

z.B. KlasseA.KONSTANTENNAME


----------



## SlaterB (13. Sep 2011)

@kappesf
na so was es nun garantiert nicht gemeint


----------



## JJay-JJay (13. Sep 2011)

SlaterB hat gesagt.:


> was ist denn das für eine Codezeile, man kann doch nicht ohne Sinn Zeichen aneinanderreihen?,
> irgendwelche Programmierkenntnisse vorhanden oder kopierst du dir alles zusammen?..



Das meiste is in der Tat zusammenkopiert. Ich hatte nur einen einwöchigen Grundkurs als erste Begegnung mit Java und soll jetzt so ein feines Programm zimmern. 

Der Rest kommt daher, dass ich einfach schwer von Begriff bin. Ich entschuldige mich.
War aber trotz der fiesen Formulierung n gutes Beispiel, das hab ich gleich gerafft. Also danke.


----------

