Modifica i file excel esistenti usando jxl api / POI Apache

Sono interessato e vorrei saperne di più su java, su come scrivere in fogli excel esistenti / manipolare i dati esistenti. Mi chiedevo se potessi darmi un’idea su come modificare un file excel esistente e salvarlo usando il PDI jxl api / Apache o magari darmi un programma di esempio su come modificare alcuni dati in un file excel esistente e poi salvarlo Grazie in anticipo !!

I tutorial qui sono molto utili e ben scritti. Usano un JAR esterno sviluppato dal progetto POI di Apache. Ecco un semplice esempio di modifica di una cella:

InputStream inp = new FileInputStream("wb.xls"); Workbook wb = WorkbookFactory.create(inp); Sheet sheet = wb.getSheetAt([sheet index]); Row row = sheet.getRow([row index]); Cell cell = row.getCell([cell index]); String cellContents = cell.getStringCellValue(); //Modify the cellContents here // Write the output to a file cell.setCellValue(cellContents); FileOutputStream fileOut = new FileOutputStream("wb.xls"); wb.write(fileOut); fileOut.close(); 

Spero che sia d’aiuto

Un suggerimento molto importante che ho imparato nel modo più duro. Apri OutputStream solo dopo aver completato la scrittura sulla cartella di lavoro di Excel. L’esempio di Zabbala è azzeccato e lo mostra correttamente. Se apri OutputStream in precedenza, le tue modifiche non verrebbero scritte sul file dopo che il tuo programma è terminato e ti saresti grattato la testa come ho fatto io.

Rinnovo le formule con un’altra scheda per questo uso la frase successiva

 HSSFSheet worksheetse = workbook.getSheetAt(0); worksheetse.setForceFormulaRecalculation(true); 

ma è necessario applicare il metodo setForceFormulaRecalculation per tutte le tabs che contengono le formule.

Mi scusi per il mio inglese

Ciao ho lo stesso problema di neXGen. Ma stranamente se apro il file con OpenOffice, funziona!

Modifica: forse ho trovato una soluzione, metti questo dopo aver cambiato i valori:

 HSSFFormulaEvaluator.evaluateAllFormulaCells(workbook);