0
對於我的項目,使用java和POI lib創建一個excel文件。 我有幾張紙和很多不同的信息。對於少數我可以使用模板,只需插入數據。Java POI autosize columun
但是對於其他一些數據,我不知道我將得到的信息的長度。
我需要將Excel呈現舒服,所以我用不同的風格,我的問題是自動調整大小:
/**
* Remplit les cellules d'un onglet
* @param nomOnglet Le nom de l'onglet à remplir
* @param cellules Les valeurs à insérer dans l'onglet
* @throws TechniqueException
*/
private void remplirOnglet(HSSFWorkbook classeur, String nomOnglet, List<CelluleExport> cellules) throws TechniqueException {
HSSFSheet onglet = classeur.getSheet(nomOnglet);
if(onglet == null)
onglet = classeur.createSheet(nomOnglet);
int colMax = 0;
for (CelluleExport cellule : cellules) {
int idLigne = cellule.getRow()-1;
int idColonne = cellule.getColumn()-1;
colMax = Math.max(colMax, idColonne);
HSSFRow ligne = onglet.getRow(idLigne);
if(ligne == null)
ligne = onglet.createRow(idLigne);
HSSFCell poiCell = ligne.getCell(idColonne);
if(poiCell == null)
poiCell = ligne.createCell(idColonne);
poiCell.setCellType(HSSFCell.CELL_TYPE_STRING);
poiCell.setCellValue(cellule.getValeur());
if(cellule.isStyled()) {
applyStyle(cellule, poiCell);
if(cellule.getStyleType().equals(CelluleExport.CELL_STYLE_TYPE.TITRE_BLOC))
fusionnerDroite(onglet, cellule, 2);
}
}
for(int i=0; i <= colMax; i++){
onglet.autoSizeColumn(i, true);
}
}
的Auosize工作得很好,大部分時間。對於幾個單元格,使用粗體或更大的字體不起作用。
有沒有人知道一種方法來避免這個問題?我沒有在網上找到任何東西,我認爲這是lib的問題。
這是lib或excel問題。我也有這個問題,我沒有找到解決辦法。 – IQV
對於那些有興趣的人,我通過在autoSize後面添加一個特定值來糾正了這個問題:onglet.autoSizeColumn(i,true); \t onglet.setColumnWidth(i,onglet.getColumnWidth(i)+ 3 * 256); –