[JExcelApi] Ouverture d'un fichier .xls
Bonjour,
Je n'arrive pas à créer un workbook à partir d'un certain fichier .xls avec JExcellApi. Je ne comprend vraiment pas pourquoi ça ne marche pas...:?
Voilà mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
import jxl.*;
import jxl.Workbook;
import java.io.File;
public class MonApplication
{
public static void main(String[] args)
{
Workbook workbook;
try
{
workbook = Workbook.getWorkbook(new File("l.xls"));
}
catch(Exception e)
{
e.printStackTrace();
}
}
} |
et voilà l'erreur que java m'affiche :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
----jGRASP exec: java MonApplication
java.lang.StringIndexOutOfBoundsException: String index out of range: 68
at java.lang.String.checkBounds(String.java:401)
at java.lang.String.<init>(String.java:442)
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 MonApplication.main(MonApplication.java:12)
----jGRASP: operation complete. |
Quelqu'un saurait me dire quel est le problème?
Merci :D
Mieux vaut tard que jamais...
J'ai eu le même problème avec la dernière version de JExcelApi 2.6.12 (qui commence un peu à dater)
En cherchant j'ai trouvé un bug dans la librairie, plus précisément dans la classe jxl.read.biff.WriteAccessRecord.java (ligne 55).
Ce bug a été confirmé sur le forum de JExcelApi d'ailleurs.
Comme la librairie n'est plus maintenue, il faut se le corriger dans les sources soi-même :
Code:
1 2 3
| // BIFF7 does not use unicode encoding in string
int length= data[1];
wauser= StringHelper.getString(data, length, 1, ws); |
Il faut remplacer ici le data[1] par data[0]