?

基于NPOI數據導出方法的研究與實現

2017-11-15 19:36連俊光
電腦知識與技術 2017年28期

連俊光

摘要:在軟件項目中,筆者常常用到將查詢出來的數據,導出到Excel表格中去的功能,或者將Excel表格中的數據導入到內存中去。該文以使用NPOI導出到Excel為例,對NPOI中的workbook,sheet,row,cell等幾個名詞及具體對應的操作類,類的方法,進行了詳細的講解、使用。

關鍵詞:NPOI;Excel;數據導入導出

中圖分類號:TP317 文獻標識碼:A 文章編號:1009-3044(2017)28-0008-02

1 概述

在日常的工作中,我們習慣通過Excel進行數據的統計、整理,所以在軟件開發中,對從數據庫中查詢的數據導出到Excel是一個必不可少的功能。

2 NPOI的優勢

目前Excel導入導出有多種方法,而今天我們要研究的是通過一個叫做NPOI的組件,進行數據的導入導出。NPOI具有如下優勢:

1) 該插件可以免費使用。

2) 許多Excel的特點都可以使用,比如說表格的樣式等。

3) 有專業的團隊,提供優秀的技術支持。

4) xls, xlsx, docx等格式都可以操作。

5) 面向接口編程,可以在命名空間中查看接口定義。

6) 既能完成文件的導出,也能將Excel導入到系統中。

7) 支持較早的.net Framework版本

8) 有大量的成功案例

9) 較多的技術學習資料。

10) 你不需要在服務器上安裝微軟的Office,可以避免版權問題。

11) 使用起來比Office PIA的API更加方便,更人性化。

12) 你不用去花大力氣維護NPOI,NPOI Team會不斷更新、改善NPOI,絕對省成本。

3 NPOI操作類說明

3.1 工作本對象

HSSFWorkbook表示工作本,它包含幾個重要的函數。函數一是CreateSheet,函數二GetSheetAt,函數三CreateCellStyle,函數四CreateFont,函數五Write(stream),以及HSSFWorkbook本身的無參構造函數

1) 新建一個工作本使用HSSFWorkbook的無參構造函數。

2) 指定sheet對象的創建用函數一,括號內參數為對象索引。

3) 想要得到指定索引的sheet對象,用函數二,括號內參數為對象的索引。

4) 函數四用來新建一個樣式對象,該樣式對象用于單元格。

5) 新建字體對象實用函數五。

6) 函數六是將workbook寫到流中。

3.2 工作表對象

HSSFSheet表示工作表對象,它有三個函數。函數一CreateRow、函數二GetRow、函數三AddMergeRegion、函數四SetColumnWidth

1) 新建索引行用第一個函數。

2) 獲得指定索引指向的行使用第二個函數。

3) 第三個函數可以設置單元格的區域合并。

4) 函數四可是設定列的寬度。

3.3 行對象

HSSFRow表示行對象,它有兩個函數和一個屬性。函數一CreateCell、函數二GetCell,一個屬性為HeightlnPoints。

1) 新建索引行使用函數一。

2) 獲得指定單元格使用函數二。

3) 設定行的高度使用屬性。

3.4 單元格對象

HSSFCell是單元格對象,它有一個函數和兩個屬性。函數一為SetCellValue、屬性一***CellValue、屬性二CellStyle。

1) 用函數一為單元格賦值。

2) 屬性一***可以得到單元格的指定類型的內容。

3) 設定單元格的樣式使用屬性二。

3.5 單元格樣式對象

HSSFCellStyle是單元格樣式對象,函數一SetFont和屬性一Alignment。

1) 字體樣式使用函數一設定

2) 屬性一有三個參數,數字1表示水平居左,數字2表示水平居中,數字3表表示水平居右。

3.6 字體對象

HSSFFont是字體對象。它有兩個屬性。屬性一FontHeightlnPoints、屬性二Boldweight。

1) 屬性一可以用來設置字體大小。

2) 屬性二可以改變字體的粗細。

4 demo操作演示

在VS中新建項目,選擇Visual C#——Windows——Windows窗體應用程序,命名為Test,在Test中,添加——Windows窗體,命名為NPOITest,在NPOI官網(http://npoi.codeplex.com/)下載編譯過后的NPOI類庫,打開,將文件夾內的全部內容復制,將復制的內容粘貼lib文件夾下(若無此文件夾,找到項目所在位置,在項目文件夾內新建),如下圖:

Test項目中添加引用,如下圖:

在NPOITest窗體中,添加一個按鈕和一個DataGridView控件。效果如下:

綁定數據源,此處為做演示,我用了某個管理系統的管理員列表的數據庫數據(大家做測試可以使用自己的數據庫),當窗加載時自動加載數據,如圖4。

5 導出按鈕后臺代碼截圖

6 效果圖

效果圖如圖5所示。

7 結束語

實現了從軟件系統中將數據庫中查詢的數據導出到Excel中,可在實際應用中參考此方法實現數據導出,具有實用價值。

參考文獻:

[1] 魏文勝.Excel與SQLServer數據的相互轉換之方法[J].電腦知識與技術,2007(10):892.

[2] 張麗英.基于.NET的Excel數據批量導入SQL Server的設計與實現[J].南通紡織職業技術學院學報, 2012, 12(1):7-10.

[3] 游向峰.基于ASP.NET的SQL與Excel數據互導的研究與實現[J].電腦知識與技術, 2010(11):8953.endprint

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合