从另一个XSSFCellStyle(POI APACHE)创build新的或克隆的XSSFCellStyle
需求
我需要一个新的XSSFCellStyle
因为我必须改变一些XSSFCellStyle
。
情况
我只有一个XSSFCellStyle
– 我没有它所属的XSSFCell
。 因此,我也无法访问相关的XSSFSheet
或XSSFWorkbook
。
我已经试过了
- 我没有
XSSFWorkbook
因此我无法调用workbook.createCellStyle()
。 -
XSSFCellStyle
构造函数至less需要一个StylesTable
,我也没有(因为我找不到从旧的XSSFCellStyle
获取它的XSSFCellStyle
)。 -
cellStyle.cloneStyleFrom(XSSFCellStyle Source)
并没有真正克隆样式(它或多或less只是一个具有相同指针的副本,所以如果我改变一个cellStyle上的“clone”cellStyle有相同的变化)。
题
我怎样才能得到一个新的XSSFCellStyle
?
问候,winklerrr
由于Excel将样式存储在xls / xlsx中的方式,您需要使用Workbook / Sheet才能创build新样式。 实际上,样式不是作为单元格的一部分存储的,而是作为工作簿中的单独列表存储的。 由于这种风格,如果可能的话,也应该跨单元重用。
那么你会做类似的事情
XSSFCellStyle clone = wb.createCellStyle(); clone.cloneStyleFrom(origStyle);
创build一个新的风格,克隆原来的设置。
有一个XSSFCellStyle.clone(),但我不确定它是否会做你期望的工作簿的链接不会被更新,所以你将有两个Style对象指向列表中相同的样式索引工作簿中的样式…
XSSFCellStyle
上有一个clone()
方法。
我不知道为什么,但是我没有看到它。 我的错。