Bonjour tous le monde,
C'est mon premier post sur ce forum que j'ai l'habitude de consulter en cas de problème mais sans jamais y prendre part.
Voila mon problème, j'utilise POI pour lire et modifié mes fichiers excel (dans le cadre de boulot), et j'ai un soucis lors de l'évaluation des formules de mon fichier excel : il me déclenche une exception "IndexOutOfBoundsException", j'ai remarqué que celle-ci se déclenche lors de l'évaluation me semble-t-il d'une formule appelant des fichiers (excel) de l'exterieur.
Voici mon code de teste que j'utilise pompé directement du tuto de POI :
Ce que j'aimerai faire est de ne pas traité les formules problématique mais de ne traités que celles qui sont propres au formulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 FileInputStream fis = new FileInputStream("/somepath/test.xls"); HSSFWorkbook wb = new HSSFWorkbook(fis); for(int sheetNum = 0; sheetNum < wb.getNumberOfSheets(); sheetNum++) { HSSFSheet sheet = wb.getSheetAt(sheetNum); HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(sheet, wb); for(Iterator rit = sheet.rowIterator(); rit.hasNext();) { HSSFRow r = (HSSFRow)rit.next(); evaluator.setCurrentRow(r); for(Iterator cit = r.cellIterator(); cit.hasNext();) { HSSFCell c = (HSSFCell)cit.next(); if(c.getCellType() == HSSFCell.CELL_TYPE_FORMULA) { evaluator.evaluateFormulaCell(c); } } } } wb.write(new FileOutputStream("/somepath/changed.xls"));
Merci d'avance.
Partager