C#使用NPOI导出Excel文件
歡迎您成為我的讀者,希望這篇文章能給你一些幫助。
前言
今天咱們一起來看看在C#中如何使用NPOI第三方控件進行數(shù)據(jù)的導出。
關(guān)于NPOI插件網(wǎng)上資料很多,大家感興趣的可以去看看。
本文使用的版本是NPOI 2.5.1。
大家可在包管理器NuGet或者下面網(wǎng)址進行下載。
http://npoi.codeplex.com/ 快速下載地址: //files.cnblogs.com/files/netxiaohui/npoi.2.5.1.zip很多時候,我們在進行數(shù)據(jù)導出到Excel文件時,在windows平臺需要使用到office組件才可以成功導出,也就是說電腦很多時候都必須安裝office才可以。今天分享的這個組件,可以在目標主機不安裝office的情況下,對Word或Excel進行讀寫操作。
NPOI的優(yōu)勢
- 開源,可以完全免費使用 
- 包含大部分EXCEL的特性 
- 支持處理的文件格式包括(xls/xlsx/docx) 
- 同時支持導入導出 
- 基于.net 2.0/4.0也支持xlsx和docx格式 
- 不需要在服務器或目標主機安裝office 
- 它不僅對Excel進行操作,可以對doc,ppt文件進行操作 
NPOI內(nèi)部構(gòu)成
NPOI是一個開源的C#讀取Excel、Word等微軟OLE2組件文件的項目。
在使用NPOI的過程中,有一些名稱需要提前了解下。
Workbook工作薄 一個文件包含一個工作簿,一個工作簿可以包含若干個工作表Sheet。
Sheet工作表
HSSFWorkbook用于處理xls文件類型的NPOI操作類,繼承自IWorkbook。
XSSFWorkbook處理xlsx文件類型的NPOI操作類,也繼承自IWorkbook。
操作xlsx文件進行數(shù)據(jù)導出工作時,主要有以下幾個步驟需要注意。
1、聲明XSSFWorkbook實例。
2、利用聲明并實例化的工作簿創(chuàng)建其工作表。
3、寫入Excel表頭和表數(shù)據(jù)
4、將實例化的工作簿寫入流文件中。
實際的導出工作就是上面說的四步,但是在內(nèi)部需要具體進行一些表格樣式、輸出字體樣式的調(diào)整。
具體代碼如下:
using?(FileStream?fs?=?new?FileStream(sfd.FileName,?FileMode.OpenOrCreate,?FileAccess.ReadWrite)){XSSFWorkbook?workbook?=?new?XSSFWorkbook();ISheet?sheet?=?workbook.CreateSheet("Sheet1");string[]?excelHeader?=?new?string[]?{"點名稱","編號",?"時間",?"埋深(m)",?"水深(m)",?"測試01",?"測試02",?"測試03",?"測試04",?"測試05",?"測試06",?"測試06",?"測試07",?"測試08",?"測試09"};IRow?headerRow?=?sheet.CreateRow(0);for?(int?i?=?0;?i?<?excelHeader.Length;?i++){headerRow.CreateCell(i).SetCellValue(excelHeader[i]);}int?count?=?mpInfoDictionary.Count;for?(int?i?=?0;?i?<?count;?i++){MeasurementPointInfo?mpi?=?mpInfoDictionary[i];IRow?row?=?sheet.CreateRow(i?+?1);row.CreateCell(0).SetCellValue("名稱");row.CreateCell(1).SetCellValue(mpi.nSeq);row.CreateCell(2).SetCellValue(mpi.nDate.ToString());row.CreateCell(3).SetCellValue(mpi.dbDepth);row.CreateCell(4).SetCellValue(mpi.dbWaterDepth);row.CreateCell(5).SetCellValue(mpi.dbCPTDInfo);row.CreateCell(6).SetCellValue(mpi.dbCPTDOffInfo);row.CreateCell(7).SetCellValue(mpi.dbOneDragDisplaceDSe);row.CreateCell(8).SetCellValue(mpi.dbOneDragDisplaceDSn);row.CreateCell(9).SetCellValue(mpi.dbOneDragDisplaceDSu);row.CreateCell(10).SetCellValue(mpi.dbCPInfo);row.CreateCell(11).SetCellValue(mpi.dbCPOffInfo);row.CreateCell(12).SetCellValue(mpi.dbDisplaceSE);row.CreateCell(13).SetCellValue(mpi.dbDisplaceSN);row.CreateCell(14).SetCellValue(mpi.dbDisplaceSU);????}workbook.Write(fs);???????????//寫入到Excel中??????????}可以導出如下所示表格:
寄語
人生短暫,我不想去追求自己看不見的,我只想抓住我能看得見的。
原創(chuàng)不易,給個關(guān)注。
我是阿輝,感謝您的閱讀,如果對你有幫助,麻煩點贊、轉(zhuǎn)發(fā) ?謝謝。
很高興能和您成為朋友。
推薦閱讀
分享給同做程序員的你我他
畢業(yè)四年,我當初是如何走上編程這條路的!
物聯(lián)網(wǎng)工程專業(yè)的迷茫與抉擇
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的C#使用NPOI导出Excel文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: WPF 基础控件之CheckBox样式
- 下一篇: [C# 项目实战]: 制作一个备忘录(经
