Comment obtenir plus de 255 colonnes dans une feuille excel à l'aide d'Apache POI 3.6
Je suis en création d'un calendrier dans excel. La colonne 1 est 01.01.2010 (jj.MM.aaaa) de la Colonne 2 est 02.01.2010 et ainsi de suite.
C'est mon code:
int day_cell = 0;
for(int i = 0; i < days.size(); i++)
{
Date day = days.get(i);
HSSFCell cell = row.createCell(day_cell++);
cell.setCellValue(day.toString());
}
Quand j'arrive à la colonne 256 PI lève cette exception:
java.lang.IllegalArgumentException: Invalid column index (256). Allowable column range for BIFF8 is (0..255) or ('A'..'IV')
at org.apache.poi.hssf.usermodel.HSSFCell.checkBounds(HSSFCell.java:926)
at org.apache.poi.hssf.usermodel.HSSFCell.<init>(HSSFCell.java:162)
at org.apache.poi.hssf.usermodel.HSSFRow.createCell(HSSFRow.java:141)
at org.apache.poi.hssf.usermodel.HSSFRow.createCell(HSSFRow.java:119)
J'ai constaté ce bug-report à croire qu'il a été corrigé dans la version 3.6. Nous avons été à l'aide de 3,5, mais en changeant de 3.6 ne semble pas faire quelque chose de bon. Quelqu'un a des conseils à donner?
https://issues.apache.org/bugzilla/show_bug.cgi?id=46806
Edit: il Semble que le bug en question a été sur les formules..
- Je ne cherche pas à changement à tout autre API.
Vous devez vous connecter pour publier un commentaire.
Pré-2007 les feuilles de calcul excel a une limite de 256 colonnes. Ces feuilles également générer ".xls" extension. Excel 2007 et au-delà peut accueillir 16 K colonnes, sont basés sur un format XML et générer ".xlsx" format.
Le PI modèle d'objet d'avant 2007 feuilles est
org.apache.poi.hssf.usermodel
tandis que le modèle d'objet à partir de 2007 des feuilles estorg.apache.poi.xssf.usermodel
Le package
org.apache.poi.ss.usermodel
fournit une interface uniforme, couvrant à la fois les modèles d'objet. Ainsi, pour créer plus de 256 colonnes, vous aurez à utiliser des classes à l'intérieur de laorg.apache.poi.xssf.usermodel
package ou dansorg.apache.poi.ss.usermodel
.Votre problème peut être avec Excel, pas de votre API.
Le nombre maximal de colonnes dans une feuille de calcul Excel 2007 est de 256.
J'ai tout compris. J'ai dû passer de la org.apache.pi.hssf.usermodel à la org.apache.pi.ss.usermodel
Cela vous permet d'utiliser 16k colonnes ou quelque chose comme ça.
Vous pourriez envisager de passer de portrait à paysage (en d'autres termes, la transposition des données), de sorte que vous obtenez à utiliser 65k lignes pour les jours de l'année. C'est exactement ce que j'ai fait avec un rapport nécessite un grand nombre de colonnes et le petit nombre de lignes.
Sinon, vous pouvez diviser l'année en 6 mois sous périodes, chacune sur sa propre feuille.
Ce sont les deux solutions palliatives, mais qui peut vous donner une "bonne" solution, selon les besoins que vous avez.
C'est parce que Excel a limité le nombre de colonnes
Voir ceci: http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP005199291.aspx
Comment obtenir plus de 255 colonnes dans une feuille excel à l'aide d'Apache POI
essayez