首页 文章

Apache POI保留现有的Excel格式样式

提问于
浏览
3

我正在使用Apache POI读取现有模板excel文件,并希望复制某些 Headers 行中的现有样式并将它们应用于新单元格 .

似乎没有应用现有格式(IE,日期,货币,百分比等) .

代码非常基本:

//read existing style
Row existingRow = sheet.getRow(headerRowIndex);
Cell existingCell = existingRow.getCell(0);
CellStyle currentStyle = existingCell.getCellStyle();


//apply date style here
Date date = StringUtil.toDate(map.get(column.getHeaderName()));
cell.setCellValue(date);
//apply previous style      
cell.setCellStyle(currentStyle);

它会复制字体和背景颜色等,但似乎格式化丢失(所有单元格都应用了“常规”格式) .

当我这样做时:

currentStyle.getDataFormat(); // always 0

所以它让我觉得我没有正确阅读格式 . 有关如何实现这一目标的任何想法?

1 回答

  • 0

    好吧我明白了,这是我的错 . 我正在从行中的第一个单元格中读取样式并将其应用于所有单元格,而不是从每个单元格中读取 .

    这解决了它

    Cell existingCell = existingRow.getCell(i);
    

相关问题