gpt4 book ai didi

java - 将样式从一个 Excel 工作簿复制到另一个 Excel 工作簿

转载 作者:行者123 更新时间:2023-11-30 02:27:30 33 4
gpt4 key购买 nike

我想将工作簿的一张工作表(包括样式)复制到新工作簿。

我尝试迭代所有单元格并且

CellStyle newCellStyle = workbook.createCellStyle();
newCellStyle.cloneStyleFrom(oldCell.getCellStyle());
newCell.setCellStyle(newCellStyle);

抛出java.lang.IllegalStateException:超出了单元格样式的最大数量。您最多可以在 .xls 工作簿中定义 4000 种样式

CellStyle newCellStyle = oldCell.getCellStyle();
newCell.setCellStyle(newCellStyle);

抛出java.lang.IllegalArgumentException:此样式不属于提供的工作簿。您是否正在尝试将一个工作簿中的样式分配给另一工作簿的单元格?

复制样式的正确方法是什么?

最佳答案

用包含样式的 HashMap 解决了这个问题

HashMap<Integer, CellStyle> styleMap = new HashMap<Integer, CellStyle>();
public void copyCell(Cell oldCell, Cell newCell){
int styleHashCode = oldCell.getCellStyle().hashCode();
CellStyle newCellStyle = styleMap.get(styleHashCode);
if(newCellStyle == null){
newCellStyle = newCell.getSheet().getWorkbook().createCellStyle();
newCellStyle.cloneStyleFrom(oldCell.getCellStyle());
styleMap.put(styleHashCode, newCellStyle);
}
newCell.setCellStyle(newCellStyle);
}

关于java - 将样式从一个 Excel 工作簿复制到另一个 Excel 工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45273676/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com