Lecture / écriture Excel avec API basée sur java – vogella

J'essaie de modifier le file Excel existant avec la vogella JAVA Excel API, mais je ne peux pas le gérer. J'ai trouvé un moyen de recréer le file excel, mais ce n'est pas ce que je veux. Quelqu'un pourrait-il donner un conseil, donner un indice ou partager un petit exemple.

Je partage ce que j'essaie de faire:

/** * Reading external file. * * @return Record[]; * @throws IOException; * @throws BiffException. */ public Record[] read() throws IOException { File inputWorkbook = new File(inputFile); Workbook w; Record[] records = null; int rowsCount = 0; try { w = Workbook.getWorkbook(inputWorkbook); Sheet sheet = w.getSheet(0); int columnsCount = sheet.getColumns(); rowsCount = sheet.getRows(); records = new Record[rowsCount]; for (int rowIndex = 0; rowIndex < rowsCount; rowIndex++) { Record record = new Record(columnsCount); for (int columnIndex = 0; columnIndex < columnsCount; columnIndex++) { Cell cell = sheet.getCell(columnIndex, rowIndex); Ssortingng value = cell.getContents(); record.setRecordData(columnIndex, value); } records[rowIndex] = record; } } catch (BiffException e) { errorMessage = 1; } return records; } /** * Writing to existing excel file. * * @param records; * @throws IOException; * @throws WriteException; * @throws BiffException. */ public void write(Record[] records) throws IOException, WriteException, BiffException { File file = new File(inputFile); WorkbookSettings wbSettings = new WorkbookSettings(); wbSettings.setLocale(new Locale("en", "EN")); Workbook workbook = Workbook.getWorkbook(file, wbSettings); WritableWorkbook writableworkbook = Workbook.createWorkbook(file, workbook, wbSettings); WritableSheet excelSheet = writableworkbook.getSheet(0); createLabel(excelSheet); createContent(excelSheet, records); writableworkbook.write(); writableworkbook.close(); } 

Le code que vous fournissez est écrit spécifiquement pour écraser ce qui existe déjà. Cette ligne:

  for (int rowIndex = 0; rowIndex < rowsCount; rowIndex++) 

commencera toujours à la ligne 0 et écrasera tout ce qui s'y trouve.

De plus, plus tôt, vous appelez:

 rowsCount = sheet.getRows(); 

Ce qui vous dira combien de lignes sont déjà peuplées. Si vous commencez à remplir après la dernière rangée peuplée, vous garderez tout ce qui existe déjà.