看到此標題相信網上已經有許多關於NPOI的文章了~

所以特點,說明和一些名詞等等就不多說了

還是附一下NPOI網址

http://npoi.codeplex.com/

 

進入正文

這裡示範一套較完整較常用的範例給大家

產生Excel方式大同小異

匯出方式大致上常用有兩種,一種是程式匯出至指定路徑,一種是在Web上匯出強制下載

這邊就先以程式匯出至指定路徑開始吧~

我使用的版本較舊為1.2.5.0(聽說新版有新功能,但較少用到以後再說吧)

首先先加入參考:

NOPI.dll

加入命名:

Imports NPOI.HSSF.UserModel   ---> 提供讀寫Microsoft Excel XLS格式功能

程式部分以下:

        Dim dtbl As DataTable --->這邊用最常見的DataTable 來給資料  (這邊的DataTable就請各位自行加入要的值囉~我就先略過了,以下我將會直接使用)
        Dim intSheet As Integer = 1 --->給迴圈使用
        Dim sheetName As String = "工作列" --->設定工作列名稱
        Dim tmpPath As String = "D:\XXX\" --->設定檔案路徑
        Dim fileName As String = "123.xls" --->設定檔名

接著開始宣告元件

        Dim workbook As New HSSFWorkbook() --->Model
        Dim sheet As HSSFSheet = workbook.CreateSheet(sheetName) --->新增試算表 
        Dim dataRow As HSSFRow = sheet.CreateRow(0) --->新增表頭 
        Dim styleCenter As HSSFCellStyle = workbook.CreateCellStyle() --->儲存格格式樣式
        Dim font As HSSFFont = workbook.CreateFont() --->字體樣式

            //設定儲存格樣式
            font.FontHeightInPoints = 12
            font.FontName = "新細明體"
            styleCenter.SetFont(font)
            styleCenter.BorderTop = NPOI.SS.UserModel.BorderStyle.THIN  -->給予邊框
            styleCenter.BorderLeft = NPOI.SS.UserModel.BorderStyle.THIN
            styleCenter.BorderBottom = NPOI.SS.UserModel.BorderStyle.THIN
            styleCenter.BorderRight = NPOI.SS.UserModel.BorderStyle.THIN

            //此試算表的表頭第幾欄填入資料 
            dataRow.CreateCell(0).SetCellValue("天數")
            dataRow.CreateCell(1).SetCellValue("午餐")
            dataRow.CreateCell(2).SetCellValue("晚餐")
            dataRow.CreateCell(3).SetCellValue("晚餐")

            //給予樣式
            dataRow.GetCell(0).CellStyle = styleCenter
            dataRow.GetCell(1).CellStyle = styleCenter
            dataRow.GetCell(2).CellStyle = styleCenter
            dataRow.GetCell(3).CellStyle = styleCenter

            For i As Integer = 0 To dtbl.Rows.Count - 1

                '從第一列開始
                dataRow = sheet.CreateRow(intSheet)

                //此試算表的第幾列第幾欄填入資料
                dataRow.CreateCell(0).SetCellValue(dtbl(i)("day").ToString())
                dataRow.CreateCell(1).SetCellValue(dtbl(i)("breakfast").ToString())
                dataRow.CreateCell(2).SetCellValue(dtbl(i)("lunch").ToString())
                dataRow.CreateCell(3).SetCellValue(dtbl(i)("dinner").ToString())

                dataRow.GetCell(0).CellStyle = styleCenter
                dataRow.GetCell(1).CellStyle = styleCenter
                dataRow.GetCell(2).CellStyle = styleCenter
                dataRow.GetCell(3).CellStyle = styleCenter

                intSheet += 1
            Next

            '//新增儲存位置
            Dim filePath As New FileStream(tmpPath &fileName , FileMode.Create)
            workbook.Write(filePath)
            '用完就隨手關
            filePath.Close()
            filePath = Nothing
            workbook = Nothing

大功告成!!!!

大致上會長這樣~

 

Web的部分就等到下一次見囉~

若有錯誤或問題歡迎留言

 

 

 

 

 

 

文章標籤
全站熱搜
創作者介紹
創作者 艾倫先生 的頭像
艾倫先生

艾倫先生的程式生活日記

艾倫先生 發表在 痞客邦 留言(0) 人氣(1,587)