ho fuse due file Excel utilizzando il codice specicata quiPOI Excel Unire causando "Records riparati: Formato da parte /xl/styles.xml (stili)"
http://www.coderanch.com/t/614715/Web-Services/java/merge-excel-files
questo blocco applicando gli stili per le mie celle di fusione
if (styleMap != null)
{
if (oldCell.getSheet().getWorkbook() == newCell.getSheet().getWorkbook())
{
newCell.setCellStyle(oldCell.getCellStyle());
}
else
{
int stHashCode = oldCell.getCellStyle().hashCode();
XSSFCellStyle newCellStyle = styleMap.get(stHashCode);
if (newCellStyle == null)
{
newCellStyle = newCell.getSheet().getWorkbook().createCellStyle();
newCellStyle.cloneStyleFrom(oldCell.getCellStyle());
styleMap.put(stHashCode, newCellStyle);
}
newCell.setCellStyle(newCellStyle);
}
}
Tutto funziona come previsto e sta andando bene nel generare il mio XSSFWorkbook.
Problema con l'avvio quando provo ad aprirlo:
vedo sotto l'errore
e la mia segnalazione errori sotto
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<logFileName>error072840_01.xml</logFileName>
<summary>Errors were detected in file 'XYZ.xlsx'</summary>
<repairedRecords summary="Following is a list of repairs:">
<repairedRecord>Repaired Records: Format from /xl/styles.xml part (Styles)</repairedRecord>
</repairedRecords>
</recoveryLog>
Dopo tutti questi il mio foglio apre bene, ma senza stili. So che c'è una limitazione sul numero di stili da creare e ho contato gli stili creati e difficilmente vedo 4 creati. So anche che questo problema riguarda troppi stili.
Purtroppo, POI ha il supporto per ottimizzare solo HSSFWorkbook (Apache POI delete CellStyle from workbook)
Qualsiasi aiuto su come attenuare questo problema sarà grande.
Ti sei assicurato che stai utilizzando la versione più recente? (3.11 beta 2 al momento della scrittura) – Gagravarr
Sì, ho provato a utilizzare 3.11 beta 2 e vedo ancora lo stesso problema. Prima ero al 3,9 anche se – Shiv