2011-05-23 68 views
2

我使用NPOI从Asp.Net输出excel。我要大胆和正常样式设置为我的手机,但它正在为几个单元,而不是剩余cell.Please对下面的例子看看:NPOI设置单元格样式“HSSFFont.BOLDWEIGHT_BOLD”不起作用

Dim hssfworkbook As New HSSFWorkbook() 
    Dim sheetOne As HSSFSheet = hssfworkbook.CreateSheet("Sheet1") 
    hssfworkbook.CreateSheet("Sheet2") 
    hssfworkbook.CreateSheet("Sheet3") 

    Dim cellStyle As HSSFCellStyle = hssfworkbook.CreateCellStyle 
    cellStyle.Alignment = HSSFCellStyle.ALIGN_CENTER 

    Dim font As HSSFFont = _hssfworkbook.CreateFont() 
    font.Boldweight = HSSFFont.BOLDWEIGHT_BOLD 
    cellStyle.SetFont(font) 

    For i = 0 To 9 Step 1 
     'I want to add cell style to these cells 
     If i Mod 2 = 0 Then 
       Sheet1.CreateRow(i).CreateCell(1).SetCellValue(i) 
       font.Boldweight = HSSFFont.BOLDWEIGHT_BOLD 
       cellStyle.SetFont(font) 
       Sheet1.GetRow(i).GetCell(1).CellStyle = cellStyle 
     Else 
       Sheet1.CreateRow(i).CreateCell(1).SetCellValue(i) 
       font.Boldweight = HSSFFont.BOLDWEIGHT_NORMAL 
       cellStyle.SetFont(font) 
       Sheet1.GetRow(i).GetCell(1).CellStyle = cellStyle 
     End If 
    Next 

其实代码工作正常,但我不知道特定的情况从哪里和为什么它停止工作剩余的几行。它不适用于所有单元格,并且从该特定单元格,粗体和普通属性停止在整个工作表(如工作表2和工作表3)上工作。

回答

4

您必须使用多种样式,因为样式的更改会影响表格中引用样式的所有位置。

Dim hssfworkbook As New HSSFWorkbook() 
Dim sheetOne As HSSFSheet = hssfworkbook.CreateSheet("Sheet1") 
hssfworkbook.CreateSheet("Sheet2") 
hssfworkbook.CreateSheet("Sheet3")  

Dim BoldFont As HSSFFont = hssfworkbook.CreateFont() 
    BoldFont.Boldweight = HSSFFont.BOLDWEIGHT_BOLD 
Dim NormalFont As HSSFFont = hssfworkbook.CreateFont() 
    NormalFont.Boldweight = HSSFFont.BOLDWEIGHT_NORMAL 
Dim cellStyleBold As HSSFCellStyle = hssfworkbook.CreateCellStyle() 
With cellStyleBold 
    .setFont(BoldFont) 
    .Alignment = HSSFCellStyle.ALIGN_CENTER 
End With 
Dim cellStyleNormal As HSSFCellStyle = hssfworkbook.CreateCellStyle() 
With cellStyleNormal 
    .setFont(NormalFont) 
    .Alignment = HSSFCellStyle.ALIGN_CENTER 
End With 

For i - 0 To 9 Step 1 
    If i Mod 2 = 0 Then 
     With Sheet1.CreateRow(i).CreateCell(1) 
      .SetCellValue(i) 
      .cellStyle = cellStyleBold 
     End With 
    Else 
     With Sheet1.CreateRow(i).CreateCell(1) 
      .SetCellValue(i) 
      .cellStyle = cellStyleNormal 
     End With 
    End If 
Next 
相关问题