将 HSSFCellStyle 复制到 NPOI 中的 XSSFCellStyle

Copy HSSFCellStyle to XSSFCellStyle in NPOI

我的输入文件是 .xls,我必须从中读取数据、操作并连同样式一起写回 .xlsx 文件。

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

当我写 outputheaderStyle.CloneStyleFrom(inputheaderStyle); 时出现异常,因为 inputheaderStyle 是 HSSFCellStyle 类型,而 outputheaderStyle 是 XSSFCellStyle 类型

Can only clone from one XSSFCellStyle to another, not between HSSFCellStyle and XSSFCellStyle

outputheaderStyle.CloneStyleFrom((XSSFCellStyle)inputheaderStyle);

抛出异常

Unable to cast object of type 'NPOI.HSSF.UserModel.HSSFCellStyle' to type 'NPOI.XSSF.UserModel.XSSFCellStyle'

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

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

我通过一个一个地复制一个样式来管理我的程序。

_xssfStyle .BorderLeft = _hssfStyle .BorderLeft;
_xssfStyle .BorderRight = _hssfStyle .BorderRight;
_xssfStyle .BorderTop = _hssfStyle .BorderTop;
_xssfStyle .BorderBottom = _hssfStyle .BorderBottom;
_xssfStyle .FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Grey25Percent.Index;
_xssfStyle .FillPattern = NPOI.SS.UserModel.FillPattern.SolidForeground;
_xssfStyle .WrapText = _hssfStyle .WrapText;
_xssfStyle .VerticalAlignment = _hssfStyle .VerticalAlignment;