精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

.NET Core首例Office開源跨平臺組件(NPOI Core)

開發 后端
最近項目中,需要使用到 Excel 導出,找了一圈發現沒有適用于 .NET Core的,不依賴Office和操作系統限制的 Office 組件,于是萌生了把 NPOI 適配并移植到 .NET Core 的想法。

前言

最近項目中,需要使用到 Excel 導出,找了一圈發現沒有適用于 .NET Core的,不依賴Office和操作系統限制的 Office 組件,于是萌生了把 NPOI 適配并移植到 .NET Core 的想法。

NPOI 的介紹不多說了,不了解的可以看一下 NPOI百度百科 的介紹,在此感謝瞿總和他的團隊的貢獻。

NPOI 的移植之路并非想象的那么容易,因為其依賴了 System.Drawing 和 System.Window.Forms 兩個組件,還有一個第三方的 SharpZipLib 庫,在 GitHub 克隆了***的代碼并且轉換為 NetStandrad 1.6 編譯之后,出現了數不清的錯誤,應該有上千個吧,在經過一天的努力之后(包括刪除,修改,重寫),錯誤數量已經減少到了100多個,50多個,20多個,編譯通過。

在移植的過程中可以真切感受到當初NPOI的作者在寫這些代碼時候的辛苦努力,因為NPOI最初是基于 .Net Framework 1.1 框架寫的,那個時候沒有泛型,沒有var,沒有很多的現成的類庫,全都是靠最基礎的一些數據結構來實現,雖然里面的很多種寫法在目前看來可以很大程序的精簡,但是在當時的條件下 真的是不容易。

在通過編譯之后,心里想著應該問題不大了,于是測試了一下,不幸的是,各種問題,又經過半天的調整之后,打算放棄了。 于是又去 github 上面搜索看看有沒有其他什么解決方案之類的,無意間搜索到了一個 NPOI.Core 的一個項目,是一個老外移植的 NPOI 到Core平臺,原來已經有人做了Core的移植了,克隆下來之后發現編譯不過,又進去看了一下代碼,這個庫目前依賴于Windows平臺,而我們項目是運行在CentOS的,其并不能在Linux上運行,看來還是空歡喜一場。

怎么辦? 于是,又一次重構開始了,有了前一次的重構經驗之后,這一次可謂是輕車熟路了,NPOI Core 庫 里面使用了很多.NET Core netstandrad 標準不支持的 Hashtable 和 ArrayList 等數據結構,這些已經被新的泛型 Directory 和 List 替代了,還有依賴的 SharpZipLib 等壓縮組件也都替換成了 NetStandrad 的實現,當然還有其他很多雜七雜八的就不細說了,***,終于 netstandrad 1.6 下編譯通過。

通過之后,本地 visual studio 下 新建了一個項目,簡單測試了導出 Excel 的功能,沒問題,也沒有報錯,心里很開心...。 這個時候我在想,最關鍵的就是能不能在Linux上正常運行了,其實這個時候我心里想我已經把依賴于.NET Framework 的各種類都換成了net standrad了,應該問題不大了。

然后在一頓 dotnet publish 之后,把部署包傳到了 Linux 下進行測試,果然,運行通過,并沒有拋出任何異常,而且Excel也生成了,把Excel傳輸到windows上使用office打開,***...

然后緊接著就是繼續各種測試了,在測試到 Word 的導出功能時候,出問題了。因為NPOI 天生對Word的功能支持的并不是很完善,心想是不是.NET Framewok下導出也不行啊,于是又新建的一個.NET Framework的項目,使用NPOI Team提供的 dll 測試,發現可以導出。然后就開始跟代碼,各種測試,重構,最終Word的導出功能也沒有問題了。緊接著又發到了Linux上測試,沒有問題,心里的石頭落地了。

在通過測試之后,本想著把這次調整的代碼以 PR 的形式推送給原作者的時候,發現好像原作者已經不維護這個項目了,無奈,只能自己發布NuGet了。

于是我就把它重新發布到 NuGet 了,如果使用的過程中有問題,大家可以去我的github下面提交 issue。

GitHub : https://github.com/yuleyule66/Npoi.Core

NuGet :


image

Getting Started

導出 Excel

本示例代碼包含:

  • 多個 Sheet

  • 合并單元格

  • 自動調整列寬

  • 填充背景色

  1. var newFile = @"newbook.core.xlsx"
  2.  
  3. using (var fs = new FileStream(newFile, FileMode.Create, FileAccess.Write)) { 
  4.  
  5.     IWorkbook workbook = new XSSFWorkbook(); 
  6.  
  7.     ISheet sheet1 = workbook.CreateSheet("Sheet1"); 
  8.  
  9.     sheet1.AddMergedRegion(new CellRangeAddress(00010)); 
  10.     var rowIndex = 0
  11.     IRow row = sheet1.CreateRow(rowIndex); 
  12.     row.Height = 30 * 80
  13.     row.CreateCell(0).SetCellValue("這是單元格內容,可以設置很長,看能不能自動調整列寬"); 
  14.     sheet1.AutoSizeColumn(0); 
  15.     rowIndex++; 
  16.  
  17.  
  18.     var sheet2 = workbook.CreateSheet("Sheet2"); 
  19.     var style1 = workbook.CreateCellStyle(); 
  20.     style1.FillForegroundColor = HSSFColor.Blue.Index2; 
  21.     style1.FillPattern = FillPattern.SolidForeground; 
  22.  
  23.     var style2 = workbook.CreateCellStyle(); 
  24.     style2.FillForegroundColor = HSSFColor.Yellow.Index2; 
  25.     style2.FillPattern = FillPattern.SolidForeground; 
  26.  
  27.     var cell2 = sheet2.CreateRow(0).CreateCell(0); 
  28.     cell2.CellStyle = style1; 
  29.     cell2.SetCellValue(0); 
  30.  
  31.     cell2 = sheet2.CreateRow(1).CreateCell(0); 
  32.     cell2.CellStyle = style2; 
  33.     cell2.SetCellValue(1); 
  34.  
  35.     cell2 = sheet2.CreateRow(2).CreateCell(0); 
  36.     cell2.CellStyle = style1; 
  37.     cell2.SetCellValue(2); 
  38.  
  39.     cell2 = sheet2.CreateRow(3).CreateCell(0); 
  40.     cell2.CellStyle = style2; 
  41.     cell2.SetCellValue(3); 
  42.  
  43.     cell2 = sheet2.CreateRow(4).CreateCell(0); 
  44.     cell2.CellStyle = style1; 
  45.     cell2.SetCellValue(4); 
  46.  
  47.     workbook.Write(fs); 

導出 Word

本示例代碼包含:

  • 設置段落對其方式

  • 設置段落字體

  • 設置段落縮進

  • 這是字體大小

  1. var newFile2 = @"newbook.core.docx"
  2. using (var fs = new FileStream(newFile2, FileMode.Create, FileAccess.Write)) { 
  3.     XWPFDocument doc = new XWPFDocument(); 
  4.     var p0 = doc.CreateParagraph(); 
  5.     p0.Alignment = ParagraphAlignment.CENTER; 
  6.     XWPFRun r0 = p0.CreateRun(); 
  7.     r0.FontFamily = "microsoft yahei"
  8.     r0.FontSize = 18
  9.     r0.IsBold = true
  10.     r0.SetText("這里是標題"); 
  11.  
  12.     var p1 = doc.CreateParagraph(); 
  13.     p1.Alignment = ParagraphAlignment.LEFT; 
  14.     p1.IndentationFirstLine = 500
  15.     XWPFRun r1 = p1.CreateRun(); 
  16.     r1.FontFamily = "仿宋"
  17.     r1.FontSize = 12
  18.     r1.IsBold = true
  19.     r1.SetText("這里是正文,這里是正文這里是正文這里是正文這里是正文這里是正文這里是正文這里是正文這里是正文這里是正文這里是正文這里是正文"); 
  20.  
  21.     doc.Write(fs); 

總結

據不完全統計,這應該是 .NET Core 首例 Office 跨平臺 組件了,大家如果在使用的過程中有什么問題,可以在 Github 上提交Issue(盡量使用英文)。當然更希望你能夠提交 PR 來幫助一起完善 NPOI。

如果你覺得本篇博客對您有幫助的話,感謝您的【推薦】。

如果你對 .NET Core 感興趣可以關注我,我會定期在博客分享關于 .NET Core 的學習心得。


本文地址:http://www.cnblogs.com/savorboard/p/netcore-npoi.html
作者博客:Savorboard

責任編輯:張燕妮 來源: 博客園
相關推薦

2022-08-29 07:05:30

零代碼產品.NET Core

2023-10-07 08:06:55

2024-02-26 07:31:26

WindowsLinuxmacOS

2023-12-05 07:48:27

.NET開源

2025-01-15 00:01:00

開發應用界面

2019-08-07 14:25:21

.NET.NET Core 3編程語言

2024-06-11 09:00:00

異步編程代碼

2018-08-20 08:03:46

跨平臺 Web操作系統

2021-12-05 18:22:20

.NETLS Cipher套件

2021-06-06 13:07:06

.NETWindowsLinux

2024-09-09 07:37:51

AspJWT權限

2021-06-05 23:41:47

NET異常 HttpClient

2024-06-27 10:48:48

2024-09-30 09:48:41

RabbitMQ消息中間件

2024-03-13 13:44:43

開發插件開源

2021-04-28 09:56:44

鴻蒙HarmonyOS應用

2024-11-12 07:28:39

2021-03-12 00:04:52

網關Api

2021-11-14 07:34:57

.NETEventCounte性能

2021-07-06 23:48:45

.NET用戶信息
點贊
收藏

51CTO技術棧公眾號

久久日一线二线三线suv| 伊人久久大香| 91在线丨porny丨国产| 18性欧美xxxⅹ性满足| 国产真实乱人偷精品| 性欧美18~19sex高清播放| 国产午夜精品福利| 2019av中文字幕| 日韩a级在线观看| 高h放荡受浪受bl| 中文无码久久精品| 亚洲男人天堂2019| 日本黄色一级网站| 亚洲a∨精品一区二区三区导航| 亚洲日本韩国一区| 亚洲白拍色综合图区| 欧美成人免费一级人片100| 国产女主播在线播放| 色网在线免费观看| 国产精品丝袜91| 国产精品区二区三区日本| 日韩久久中文字幕| 国产精品久久久久久久免费观看| 亚洲国产一区二区三区在线观看| 天天插天天操天天射| 精品日韩av| 肉肉av福利一精品导航| 欧美精品videosex牲欧美| 做爰高潮hd色即是空| 特级丰满少妇一级aaaa爱毛片| 美国av一区二区| 欧美专区在线视频| 国产一级中文字幕| 97久久视频| 国产精品一区二区在线播放| 日韩欧美高清在线| 五月天综合婷婷| 成人欧美亚洲| 久久综合九色| 久久久久久黄色| 99中文视频在线| 美女100%无挡| 国产精品香蕉| 亚洲一区二区三区在线看| 国产精品18毛片一区二区| 国产精品无码天天爽视频| 日本国产精品| 亚洲国产精品美女| 99re这里只有| 欧美顶级毛片在线播放| 精品国产不卡一区二区三区| 日韩精品国产一区| 99re久久精品国产| 日本在线观看高清完整版| 国产精品日产欧美久久久久| 国产精品乱子乱xxxx| 精品人妻无码一区二区三区| 免费一级欧美在线观看视频| 尤物视频一区二区| 日本黄大片在线观看| 黄网页免费在线观看| 91视频在线观看免费| 亚洲一区二区三区视频| 国产精品-色哟哟| 精品亚洲国产成人av制服丝袜| 成人h视频在线观看播放| 一本色道久久综合无码人妻| 黄页网站大全一区二区| 欧美激情乱人伦| 亚洲国产精一区二区三区性色| 极品中文字幕一区| 91sa在线看| 精品一区二区三区国产| 欧美性受xxxx黑人| 91成人短视频| 色综合天天综合网天天看片| 亚洲 高清 成人 动漫| 在线视频超级| 欧美日韩精品国产| 久久久久久免费看| 欧洲亚洲两性| 欧美视频中文字幕| 日韩av手机版| 精品国产不卡一区二区| 欧美一区二区三级| 在线xxxxx| 日韩伦理一区二区三区| 在线观看视频99| 18禁网站免费无遮挡无码中文| 亚洲深夜视频| 欧美美女网站色| 人妻 日韩 欧美 综合 制服| 中文字幕亚洲影视| 久久视频中文字幕| 日韩欧美激情视频| 久色婷婷小香蕉久久| 国产91精品久久久久久久网曝门| 国产精品免费视频一区二区| 国际av在线| 中文字幕一区二区日韩精品绯色| 粉嫩av一区二区三区天美传媒| 日韩伦人妻无码| 色琪琪久久se色| 中文字幕视频在线免费欧美日韩综合在线看 | 99精品国产一区二区| 国产不卡精品视频| 国产亚洲一区二区三区| 久操手机在线视频| 深夜视频一区二区| 亚洲国产另类久久精品 | 黄色小视频免费网站| 三级a三级三级三级a十八发禁止| 老司机精品视频在线观看6| 亚洲午夜久久久久久久久电影网| 黄色高清无遮挡| 中文幕av一区二区三区佐山爱| 精品欧美一区二区在线观看| 久久精品无码一区| 在线不卡亚洲| 国产噜噜噜噜噜久久久久久久久| 日韩有码第一页| 亚洲欧洲性图库| 欧美中日韩免费视频| av片免费播放| 欧美激情一区二区三区| 丰满爆乳一区二区三区| 成人av影音| 久久国产精品电影| 亚洲怡红院av| 亚洲国产高清在线观看视频| 91国视频在线| 免费一级做a爰片久久毛片潮| 国产一区二区三区视频在线| 亚洲视频专区在线| 一级黄色性视频| 亚洲承认在线| 国产亚洲欧洲997久久综合| 日本在线播放一区| 成人在线app| 欧美日韩视频专区在线播放| 美女被到爽高潮视频| 亚洲精品系列| 国产成人精品自拍| 成人在线二区| 亚洲a一区二区| 五月婷婷深爱五月| 国产精品午夜一区二区三区| 欧美做受高潮电影o| 亚洲精品中文字幕乱码三区91| 国产美女精品一区二区三区| 一本一道久久a久久综合精品| 日韩制服一区| 中文字幕九色91在线| 国产成人精品999| 成年免费在线观看| 国产成人精品亚洲777人妖| 伊人再见免费在线观看高清版| 精品久久福利| 国产精品第一页第二页第三页| 日本成人在线免费视频| 制服丝袜专区在线| 精品视频在线播放| 男女做暖暖视频| 极品销魂美女一区二区三区| 久久久久久久免费| 五月天开心婷婷| 久久99高清| 久久久综合av| 免费国产羞羞网站视频| 97精品电影院| 国产精品333| 日韩一级电影| 欧美成人一二三| 懂色av蜜臀av粉嫩av喷吹| 久久先锋影音av鲁色资源网| 中文字幕无码精品亚洲35| 欧产日产国产精品视频| 国产精品av久久久久久麻豆网| 香蕉国产精品| 国产欧美一区二区精品婷婷| 一区二区三区在线观看欧美| 日韩高清一区| 亚洲欧美自拍偷拍| xxww在线观看| 国产福利精品一区二区三区| 无人码人妻一区二区三区免费| 国产成人亚洲欧美| 国产偷久久久精品专区| 免费在线黄色影片| 日韩欧美国产高清91| 中文字幕乱码在线| 日韩视频在线一区二区三区| 欧美久久久久久| 国产精品伊人| 欧美另类暴力丝袜| 人成免费电影一二三区在线观看| 色综合一区二区三区| 妺妺窝人体色WWW精品| 国产综合久久久久影院| 精品91一区二区三区| 亚洲91网站| 5252色成人免费视频| 欧美新色视频| 欧美日韩久久一区二区| 97在线观看免费高| 岛国精品在线观看| 久久久免费视频网站| 水蜜桃久久夜色精品一区| 91人成网站www| 2018av在线| 正在播放亚洲1区| 在线能看的av| 亚洲欧美一区二区三区久本道91| 给我免费观看片在线电影的| 蜜桃视频一区二区| 久久视频这里有精品| 日韩在线观看| 国产精品自拍首页| 欧美少妇激情| 蜜桃av一区二区三区电影| 国产91免费视频| 美女欧美视频在线观看免费 | 欧美性猛交xxxx富婆弯腰| 精品成人av一区二区三区| 国产一区二区日韩精品| 性欧美videosex高清少妇| 亚洲国产91视频| 69**夜色精品国产69乱| 日本中文字幕视频在线| 亚洲福利视频免费观看| 少妇又紧又色又爽又刺激视频| 亚洲综合成人在线视频| 69精品无码成人久久久久久| 成人一区在线看| 99re精彩视频| 日本韩国在线观看| 亚洲一区二区三区四区在线观看 | 国语自产精品视频在线看一大j8| 嫩草研究院在线| 欧美日本在线观看| 欧美日韩综合在线观看| 亚洲欧美在线观看| 中文字幕在线观看视频www| 日韩影院在线观看| 国产手机免费视频| 色妞ww精品视频7777| 欧美福利视频在线| youjizz在线播放| 日韩av在线一区| 亚洲综合精品视频| 91成人在线观看喷潮| 日本乱子伦xxxx| 国产片一区二区| 日韩大片免费观看视频播放| 欧美xxxx精品| 久久久久久久综合| av直播在线观看| 成人一二三区| 狠狠干一区二区| 伦一区二区三区中文字幕v亚洲| 久久99国产综合精品女同| 91露出在线| 欧美一区二区三区婷婷月色| 日日摸天天添天天添破| 午夜天堂影视香蕉久久| 欧类av怡春院| 久久综合久久综合亚洲| 91黄色小网站| 国产欧美精品| aa视频在线播放| 一本久道综合久久精品| 青青在线视频免费观看| 日本免费在线播放| 国产精品麻豆视频| 麻豆精品免费视频| 国产欧美精品日韩区二区麻豆天美| 成人精品在线观看视频| 国产91在线|亚洲| 丝袜熟女一区二区三区 | 欧美亚洲视频在线看网址| 成人激情文学综合网| 色婷婷精品国产一区二区三区| 蜜桃一区二区| 欧洲高清一区二区| 欧美aaaaaaaaaaaa| 在线观看17c| 亚洲视频播放| 国产日韩欧美二区| 亚洲欧美在线视频免费| 国产精品国产三级国产aⅴ入口| yy1111111| 中文字幕一区二区三区在线不卡 | 成人免费高清视频| 北京富婆泄欲对白| 国产精品77777竹菊影视小说| 久久精品免费一区二区| 久久国产人妖系列| 亚洲黄色av片| 国产激情精品久久久第一区二区| 免费黄视频在线观看| 91在线观看下载| 色www亚洲国产阿娇yao| 国产精品久久久久久福利一牛影视| 国产精品xxx在线观看www| 精品欧美一区二区三区免费观看| 调教+趴+乳夹+国产+精品| 国产亚洲欧美精品久久久www| 精品色蜜蜜精品视频在线观看| 亚洲综合精品在线| 日韩精品一区二区三区在线| 亚洲av成人无码网天堂| 亚洲国产精品高清久久久| www日本高清视频| 日韩精品福利网站| www.亚洲视频| 久久久女女女女999久久| 精品三级在线| 国产高清精品一区| 日本一区二区高清不卡| 少妇人妻无码专区视频| 日韩激情视频网站| 一个色综合久久| 国产麻豆成人精品| 午夜理伦三级做爰电影| 国产一区二区在线免费观看| 日本黄色免费观看| 国产偷v国产偷v亚洲高清| 性爱在线免费视频| 91伊人久久大香线蕉| 殴美一级黄色片| 精品美女久久久久久免费| 精品在线免费观看视频| 欧美亚洲动漫另类| 成人高清免费在线播放| 久久久久久久网站| 欧美熟妇一区二区| 婷婷综合社区| 日韩小视频在线播放| 欧美激情综合色综合啪啪| 亚洲久久中文字幕| 国产成人精品亚洲日本在线桃色| 欧美黄色aaa| 亚洲影视在线观看| 波多野结衣在线观看视频| 日韩视频一区二区| 嫩草在线播放| 51精品国产黑色丝袜高跟鞋| 成午夜精品一区二区三区软件| 亚洲图片在线观看| 亚洲免费综合| 爱情岛论坛成人| 久久网这里都是精品| 天天av天天操| 亚洲男人都懂的| 天堂免费在线视频| 亚洲白拍色综合图区| 美女高潮视频在线看| 国内不卡一区二区三区| 久久中文视频| 午夜xxxxx| 成人欧美一区二区三区在线播放| 中国精品一区二区| 风间由美中文字幕在线看视频国产欧美| 国产伦精品一区二区三区四区免费 | 国产综合色视频| 少妇人妻丰满做爰xxx| 日韩网站在线看片你懂的| 天堂8中文在线| 国产超碰91| 新67194成人永久网站| 亚洲精品无码一区二区| 中文字幕亚洲不卡| 91香蕉在线视频| 色偷偷一区二区三区| 超碰免费在线观看| 日韩av片电影专区| 怕怕欧美视频免费大全| www.日本xxxx| 久久精品国产99国产| www色aa色aawww| 欧美v国产在线一区二区三区| 变态调教一区二区三区| 国产精品伊人日日| 噜噜噜91成人网| 91传媒理伦片在线观看| 亚洲精品成人在线| 日韩欧美一级大片| 亚洲大胆美女视频| 男女在线视频| 精品午夜一区二区三区| 免费人成黄页网站在线一区二区| 亚洲成人av免费观看| 亚洲一区二区三区中文字幕在线| 熟妇人妻av无码一区二区三区| 2019亚洲日韩新视频| 日韩伦理精品| 亚洲欧美综合区自拍另类| 欧美中文字幕精在线不卡| 日本一区美女| 精品亚洲成a人在线观看|