要求
我需要一个新的XSSFCellStyle
,因为我必须更改一些样式。
情况
我只有一个XSSFCellStyle
-我没有它所属的XSSFCell
。因此,我也无权访问相关的XSSFSheet
或XSSFWorkbook
。
我已经尝试过的
XSSFWorkbook
,所以我不能叫workbook.createCellStyle()
。 XSSFCellStyle
构造函数至少需要一个我也没有的StylesTable
(因为我找不到从旧XSSFCellStyle
获取它的方法)。 cellStyle.cloneStyleFrom(XSSFCellStyle Source)
并没有真正克隆样式(它或多或少只是一个具有相同指针的副本,因此,如果我在一个cellStyle上进行了更改,则“克隆的” cellStyle将具有相同的更改)。 问题
如何获得新的
XSSFCellStyle
?问候,温克勒
最佳答案
由于Excel将样式存储在xls/xlsx中的方式,您需要具有工作簿/表才能创建新样式。实际上,样式不是作为单元的一部分存储的,而是作为工作簿中的单独列表存储的。因此,如果可能的话,样式也应在所有单元格中重复使用。
然后你会做类似的事情
XSSFCellStyle clone = wb.createCellStyle();
clone.cloneStyleFrom(origStyle);
创建新样式并从原始样式中复制设置。
有一个XSSFCellStyle.clone(),但是我不确定它是否会如您所愿,因为指向工作簿的链接不会更新,因此您将有两个Style对象,它们指向列表中的相同style-index工作簿中的样式集...