日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C#使用NPOI导出Excel文件

發(fā)布時(shí)間:2023/12/4 C# 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#使用NPOI导出Excel文件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

歡迎您成為我的讀者,希望這篇文章能給你一些幫助。

前言

今天咱們一起來(lái)看看在C#中如何使用NPOI第三方控件進(jìn)行數(shù)據(jù)的導(dǎo)出。

關(guān)于NPOI插件網(wǎng)上資料很多,大家感興趣的可以去看看。

本文使用的版本是NPOI 2.5.1。

大家可在包管理器NuGet或者下面網(wǎng)址進(jìn)行下載。

http://npoi.codeplex.com/ 快速下載地址: //files.cnblogs.com/files/netxiaohui/npoi.2.5.1.zip

很多時(shí)候,我們?cè)谶M(jìn)行數(shù)據(jù)導(dǎo)出到Excel文件時(shí),在windows平臺(tái)需要使用到office組件才可以成功導(dǎo)出,也就是說(shuō)電腦很多時(shí)候都必須安裝office才可以。今天分享的這個(gè)組件,可以在目標(biāo)主機(jī)不安裝office的情況下,對(duì)Word或Excel進(jìn)行讀寫(xiě)操作。

NPOI的優(yōu)勢(shì)

  • 開(kāi)源,可以完全免費(fèi)使用

  • 包含大部分EXCEL的特性

  • 支持處理的文件格式包括(xls/xlsx/docx)

  • 同時(shí)支持導(dǎo)入導(dǎo)出

  • 基于.net 2.0/4.0也支持xlsx和docx格式

  • 不需要在服務(wù)器或目標(biāo)主機(jī)安裝office

  • 它不僅對(duì)Excel進(jìn)行操作,可以對(duì)doc,ppt文件進(jìn)行操作

NPOI內(nèi)部構(gòu)成

NPOI是一個(gè)開(kāi)源的C#讀取Excel、Word等微軟OLE2組件文件的項(xiàng)目。

在使用NPOI的過(guò)程中,有一些名稱(chēng)需要提前了解下。

Workbook工作薄 一個(gè)文件包含一個(gè)工作簿,一個(gè)工作簿可以包含若干個(gè)工作表Sheet。

Sheet工作表

HSSFWorkbook用于處理xls文件類(lèi)型的NPOI操作類(lèi),繼承自IWorkbook。

XSSFWorkbook處理xlsx文件類(lèi)型的NPOI操作類(lèi),也繼承自IWorkbook。

操作xlsx文件進(jìn)行數(shù)據(jù)導(dǎo)出工作時(shí),主要有以下幾個(gè)步驟需要注意。

1、聲明XSSFWorkbook實(shí)例。

2、利用聲明并實(shí)例化的工作簿創(chuàng)建其工作表。

3、寫(xiě)入Excel表頭和表數(shù)據(jù)

4、將實(shí)例化的工作簿寫(xiě)入流文件中。

實(shí)際的導(dǎo)出工作就是上面說(shuō)的四步,但是在內(nèi)部需要具體進(jìn)行一些表格樣式、輸出字體樣式的調(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[]?{"點(diǎn)名稱(chēng)","編號(hào)",?"時(shí)間",?"埋深(m)",?"水深(m)",?"測(cè)試01",?"測(cè)試02",?"測(cè)試03",?"測(cè)試04",?"測(cè)試05",?"測(cè)試06",?"測(cè)試06",?"測(cè)試07",?"測(cè)試08",?"測(cè)試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("名稱(chēng)");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);???????????//寫(xiě)入到Excel中??????????}

可以導(dǎo)出如下所示表格:

寄語(yǔ)

人生短暫,我不想去追求自己看不見(jiàn)的,我只想抓住我能看得見(jiàn)的。

原創(chuàng)不易,給個(gè)關(guān)注。

我是阿輝,感謝您的閱讀,如果對(duì)你有幫助,麻煩點(diǎn)贊、轉(zhuǎn)發(fā) ?謝謝。

很高興能和您成為朋友。

推薦閱讀

分享給同做程序員的你我他

畢業(yè)四年,我當(dāng)初是如何走上編程這條路的!

物聯(lián)網(wǎng)工程專(zhuān)業(yè)的迷茫與抉擇

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的C#使用NPOI导出Excel文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。