在NPOI中将HSSFCellStyle复制到XSSFCellStyle

时间:2016-07-28 12:34:41

标签: c# .net excel npoi xssf

我的输入文件是.xls,我必须从中读取数据,操作并写回.xlsx文件以及样式。

因此,使用 NPOI HSSF 读取.xls和 NPOI XSSF 以生成.xlsx文件。 我完成了数据。但我必须从.xls复制单元格格式并应用于输出文件。

当我写outputheaderStyle.CloneStyleFrom(inputheaderStyle);时会发生异常,因为inputheaderStyle的类型为HSSFCellStyle,而outputheaderStyle的类型为XSSFCellStyle

  

只能从一个XSSFCellStyle克隆到另一个,而不是之间   HSSFCellStyle和XSSFCellStyle

outputheaderStyle.CloneStyleFrom((XSSFCellStyle)inputheaderStyle);

抛出异常

  

无法转换类型为' NPOI.HSSF.UserModel.HSSFCellStyle'至   输入' NPOI.XSSF.UserModel.XSSFCellStyle'

还有其他方法可以复制样式吗?

1 个答案:

答案 0 :(得分:0)

嗯,.xls文件的单元格样式是HSSFCellStyle,对于.xlsx文件,它是XSSFCellStyle。目前,在NPOI中没有直接的方法将HSSFCellStyle转换为XSSFCellStyle。

我通过逐个复制样式管理我的程序。

f3 <- z ~ a + offset(b) 

f4 <- as.formula(gsub("offset\\(", "offset2(", deparse(f3)))
f4 <- update(f4, . ~ . - offset2(b))

# finally, just in case there are any references to offset2 remaining, we should revert them back to offset
f4 <- as.formula(gsub("offset2\\(", "offset(", deparse(f4)))
# z ~ a