NPOI设置的单元格样式“ HSSFFont.BOLDWEIGHT_BOLD”不起作用

如何解决NPOI设置的单元格样式“ HSSFFont.BOLDWEIGHT_BOLD”不起作用

| 我正在使用NPOI从Asp.Net输出excel。我想为单元格设置粗体和普通的样式,但是它只适用于少数单元格而不适用于其余单元格。请查看以下示例:
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
实际上,代码工作正常,但是我不知道从何而来的特殊情况以及为什么它停止为剩余的几行工作。它不适用于所有单元格,并且从该特定单元格开始,粗体和正常属性停止在整个工作表(如sheet2和sheet3)上工作。     

解决方法

您必须使用多种样式,因为样式的更改会影响工作表中引用样式的所有地方。
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
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?