这里的字体名称是通过HSSFFont.FontName进行设置的,至于具体的名称,只要是常用字体都可以,比如说Arial, Verdana等,当然也可以是中文字体名,如宋体、黑体等。不过设置字体名称有个前提,那就是假设打开这个xls文件的客户机上有这种字体,如果没有,Excel将使用默认字体。
下面就是设置字体名称为“宋体”的代码:
font.FontName="宋体";
字号
与字号有关的属性有两个,一个是FontHeight,一个是FontHeightInPoints。区别在于,FontHeight的值是FontHeightInPoints的20倍,通常我们在Excel界面中看到的字号,比如说12,对应的是FontHeightInPoints的值,而FontHeight要产生12号字体的大小,值应该是240。所以通常建议你用FontHeightInPoint属性。
如果要设置字号为12,代码就是
font.FontHeightInPoints= 12;
字体颜色
这里可能会与CellStyle上的ForegroundColor和BackgroundColor产生混淆,其实所有的字体颜色都是在HSSFFont的实例上设置的,CellStyle的ForegroundColor和BackgroundColor分别指背景填充色和填充图案的颜色,和文本颜色无关。
要设置字体颜色,我们可以用HSSFFont.Color属性,颜色可以通过HSSFColor获得,代码如下所示:
font.Color =HSSFColor.RED.index;
这行代码把文本设置为红色。
下划线
通常我们所说的下划线都是单线条的,其实Excel支持好几种下划线,如下所示:
类型
对应的值
单下划线
HSSFFont.U_SINGLE
双下划线
HSSFFont.U_DOUBLE
会计用单下划线
HSSFFont.U_SINGLE_ACCOUNTING
会计用双下划线
HSSFFont.U_DOUBLE_ACCOUNTING
无下划线
HSSFFont.U_NONE
当你要设置下划线时,可以用HSSFFont.Underline属性,这是一个byte类型的值,例如
font.Underline=HSSFFont.U_SINGLE
这行代码就是设置单下划线的代码。
上标下标
设置这东西可以用HSSFFont.TypeOffset属性,值有以下几种:
TypeOffset的值
说明
HSSFFont.SS_SUPER
上标
HSSFFont.SS_SUB
下标
HSSFFont.SS_NONE
普通,默认值
所以如果你要上标的话,可以用下面的代码:
font.TypeOffset=HSSFFont.SS_SUPER;
删除线
设置这东西可以用HSSFFont.IsStrikeout属性,当为true时,表示有删除线;为false则表示没有删除线。
相关范例请参考NPOI 1.2正式版中的ApplyFontInXls的项目。
NPOI 1.2教程 - 2.2.6设置单元格的背景和图案
作者:Tony Qu
NPOI官方网站:
本节我们将用NPOI来为单元格添加背景和图案。
在之前的教程中,我们已经提到HSSFCellStyle有两个背景颜色属性,一个叫FillBackgroundColor,另一个叫FillForegroundColor,但其实这指的都是背景颜色,那为什么还有ForegroundColor呢?为了能够帮助大家理解,我们举一个实际的例子,下面这个图案是Excel的一个单元格:
线是白色的,背景是红色的。这里的线其实就是下面的Excel界面中的图案:
至于线的颜色则是图案颜色,即白色。
所以以上单元格如果要用NPOI来设置就可以用以下代码完成:
//fillbackground
HSSFCellStylestyle8 = hssfworkbook.CreateCellStyle();
style8.FillForegroundColor= NPOI.HSSF.Util.HSSFColor.WHITE.index;
style8.FillPattern= HSSFCellStyle.SQUARES;
style8.FillBackgroundColor= NPOI.HSSF.Util.HSSFColor.RED.index;
sheet1.CreateRow(7).CreateCell(0).CellStyle= style8;
现在是不是清楚一些了,这里的FillPattern就图案样式,所有的枚举值都是HSSFCellStyle的常量;FillForegroundColor就是图案的颜色,而FillBackgroundColor则是背景的颜色,即红色。
下面罗列一下图案样式及其对应的值:
图案样式
常量
HSSFCellStyle.NO_FILL
HSSFCellStyle.ALT_BARS
HSSFCellStyle.FINE_DOTS
HSSFCellStyle.SPARSE_DOTS
HSSFCellStyle.LESS_DOTS
HSSFCellStyle.LEAST_DOTS
HSSFCellStyle.BRICKS
HSSFCellStyle.BIG_SPOTS
HSSFCellStyle.THICK_FORWARD_DIAG
HSSFCellStyle.THICK_BACKWARD_DIAG
HSSFCellStyle.THICK_VERT_BANDS
HSSFCellStyle.THICK_HORZ_BANDS
HSSFCellStyle.THIN_HORZ_BANDS
HSSFCellStyle.THIN_VERT_BANDS
HSSFCellStyle.THIN_BACKWARD_DIAG
HSSFCellStyle.THIN_FORWARD_DIAG
HSSFCellStyle.SQUARES
HSSFCellStyle.DIAMONDS
通过这张表,你将很容易找到自己需要的样式,不用再去一个一个猜测了。
相关范例请参考NPOI 1.2正式版中的ColorfullMatrixTable和FillBackgroundInXls。