使用NPOI创建Excel文件

    Public Sub BuildExcel()

        '写入内容到Excel 

        Dim hssfworkbook As HSSFWorkbook = WriteExcel()



        Dim destFileName As String = "D:\test.xls"



        Dim msfile As New MemoryStream()



        hssfworkbook.Write(msfile)

        System.IO.File.WriteAllBytes(destFileName, msfile.ToArray())

    End Sub



    Private Function WriteExcel() As HSSFWorkbook



        Dim hssfworkbook As New HSSFWorkbook()



        Dim excelSheet As HSSFSheet = hssfworkbook.CreateSheet("sheet1")



        Dim row0 As HSSFRow = excelSheet.CreateRow(0)

        Dim cell0 As HSSFCell = row0.CreateCell(0)

        cell0.SetCellValue("NUM")



        cell0.CellStyle = GetCellStyle(hssfworkbook, HSSFCellStyle.BORDER_THIN, HSSFCellStyle.BORDER_THIN, HSSFCellStyle.BORDER_THIN _

                                       , HSSFCellStyle.BORDER_THIN, HSSFColor.LIGHT_YELLOW.index, "#,##0")



        Dim i As Integer = 100, j As Integer = 1

        While i < 10000

            Dim row As HSSFRow = excelSheet.CreateRow(j)

            Dim cell As HSSFCell = row.CreateCell(0)

            cell.SetCellValue(i)

            cell.CellStyle = GetCellStyle(hssfworkbook, HSSFCellStyle.BORDER_THIN, HSSFCellStyle.BORDER_THIN, HSSFCellStyle.BORDER_THIN _

                                          , HSSFCellStyle.BORDER_THIN, HSSFColor.LIGHT_GREEN.index, "#,##0")

            i += 1

            j += 1

        End While



        Return hssfworkbook

    End Function



    Private Function GetCellStyle(ByVal hssfworkbook As HSSFWorkbook, ByVal borderLeft As Short, ByVal borderBottom As Short, _

                                  ByVal borderRight As Short, ByVal borderTop As Short, ByVal fillforgeroundColor As Short, _

                                  ByVal dataFormat As String) As HSSFCellStyle

        Dim styleInfo As HSSFCellStyle = hssfworkbook.CreateCellStyle()



        styleInfo.BorderLeft = borderLeft

        styleInfo.BorderBottom = borderBottom

        styleInfo.BorderRight = borderRight

        styleInfo.BorderTop = borderTop



        styleInfo.Alignment = HSSFCellStyle.ALIGN_CENTER

        styleInfo.VerticalAlignment = HSSFCellStyle.VERTICAL_CENTER



        styleInfo.FillForegroundColor = fillforgeroundColor

        '设置填充色 

        styleInfo.FillPattern = HSSFCellStyle.SOLID_FOREGROUND

        '设置填充色的时候必须设置这个 

        styleInfo.DataFormat = HSSFDataFormat.GetBuiltinFormat(dataFormat)

        ' 当前日期格式的需要以下这样设置 

        'HSSFDataFormat format = (HSSFDataFormat)hssfworkbook.CreateDataFormat(); 

        'styleInfo.DataFormat = format.GetFormat("yyyy年m月d日"); 



        Return styleInfo

    End Function

 

你可能感兴趣的:(Excel)