【问题标题】:Apache POI preserve existing Excel formatting styleApache POI 保留现有的 Excel 格式样式
【发布时间】:2012-09-11 15:33:42
【问题描述】:

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

似乎没有应用现有格式(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

所以这让我觉得我没有正确阅读格式。关于如何实现这一点的任何想法?

【问题讨论】:

    标签: java excel apache-poi


    【解决方案1】:

    好吧,我想通了,这是我的错误。我从行中的第一个单元格中读取样式并将其应用于所有单元格,而不是从每个单元格中读取。

    这解决了它

    Cell existingCell = existingRow.getCell(i);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多