# java tabelle auslesen - xls (excel) fehler



## pcProfie (12. Aug 2012)

moin
wenn ich eine zelle in einer excel tabelle auslesen möchte findet java in der zeile

```
w = Workbook.getWorkbook(inputWorkbook);
```
 einen StringIndexOutOfBoundsException fehler. was bedeutet das? es liegt nicht an eclipse; bluej sagt dasselbe. hier der ganze code nochmal:

```
import java.io.File;
import java.io.IOException;
import jxl.*;
import jxl.read.biff.BiffException;
public class JavaTutorial {

    public static void main(String[] args) {
        File inputWorkbook = new File("Unbenannt 1.xls");
        if(inputWorkbook.exists()) {
            System.out.println("Datei gefunden");
        }
        Workbook w;
        try {
            w = Workbook.getWorkbook(inputWorkbook);
            Sheet sheet = w.getSheet(0);
            for (int j = 0; j < sheet.getColumns(); j++) {
                for (int i = 0; i < sheet.getRows(); i++) {
                    Cell cell = sheet.getCell(j, i);
                    System.out.println(cell.getContents());
                }
            }
        } 
        catch (BiffException e) {}
        catch (IOException e) {}
    }

}
```
den code hab ich größtenteils aus Excel and Java - Read and Write Excel with Java. ich konnte den code nicht ganz übernehmen weils n paar probleme damit gab. in verbindung mit Java Excel API Tutorial ist das aber möglich


----------



## SlaterB (12. Aug 2012)

https://bugzilla.redhat.com/show_bug.cgi?id=724443
https://bugzilla.redhat.com/show_bug.cgi?id=780061

ist es zufällig ein Excel95-Dokument? wie genau erzeugt? im Zweifel Werte in ein komplett neues kopieren,
hast du von allem möglichst die neueste Version


----------



## Templarthelast (13. Aug 2012)

Geb doch mal mit den catch Blöcken die ganze Fehlermeldung aus, damit man feststellen kann, ob es ein framework bug ist, oder an deinem code liegt.


----------



## pcProfie (13. Aug 2012)

re: SlaterB
das dokument wurde mit openoffice erstellt und unter speichern unter als microsoft excel 5.0 (.xls) (*.xls) gespeichert. möglich wäre auch microsoft excel 95 (xls); microsoft excel 97/2000/xp (xls) und microsoft excel 2003 XML (xml) aber eben im xml format

re: Templarthelast

```
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 68
	at java.lang.String.checkBounds(String.java:410)
	at java.lang.String.<init>(String.java:451)
	at jxl.biff.StringHelper.getString(StringHelper.java:164)
	at jxl.read.biff.WriteAccessRecord.<init>(WriteAccessRecord.java:56)
	at jxl.read.biff.WorkbookParser.parse(WorkbookParser.java:820)
	at jxl.Workbook.getWorkbook(Workbook.java:237)
	at jxl.Workbook.getWorkbook(Workbook.java:198)
	at JavaTutorial.main(JavaTutorial.java:16)
```


----------



## Templarthelast (13. Aug 2012)

Hast du es mal mit 
	
	
	
	





```
for (int j = 0; j < sheet.getColumns()-1; j++)
```
 versucht?


----------



## pcProfie (13. Aug 2012)

VIELEN DANK SLATERB!!!
ich habe versucht das ganze mal in den anderen formaten zu speichern. als ich microsoft excel 97/2000/xp (xls) ausprobiert habe hat es geklappt!!! 

VIELEN DANK!!!
pcProfie


----------

