前言
最近項(xiàng)目中,需要使用到 Excel 導(dǎo)出,找了一圈發(fā)現(xiàn)沒有適用于 .NET Core的,不依賴Office和操作系統(tǒng)限制的 Office 組件,于是萌生了把 NPOI 適配并移植到 .NET Core 的想法。
NPOI 的介紹不多說了,不了解的可以看一下 NPOI百度百科 的介紹,在此感謝瞿總和他的團(tuán)隊(duì)的貢獻(xiàn)。
NPOI 的移植之路并非想象的那么容易,因?yàn)槠湟蕾嚵?System.Drawing 和 System.Window.Forms 兩個組件,還有一個第三方的 SharpZipLib 庫,在 GitHub 克隆了最新的代碼并且轉(zhuǎn)換為 NetStandrad 1.6 編譯之后,出現(xiàn)了數(shù)不清的錯誤,應(yīng)該有上千個吧,在經(jīng)過一天的努力之后(包括刪除,修改,重寫),錯誤數(shù)量已經(jīng)減少到了100多個,50多個,20多個,編譯通過。
在移植的過程中可以真切感受到當(dāng)初NPOI的作者在寫這些代碼時(shí)候的辛苦努力,因?yàn)镹POI最初是基于 .Net Framework 1.1 框架寫的,那個時(shí)候沒有泛型,沒有var,沒有很多的現(xiàn)成的類庫,全都是靠最基礎(chǔ)的一些數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn),雖然里面的很多種寫法在目前看來可以很大程序的精簡,但是在當(dāng)時(shí)的條件下 真的是不容易。
在通過編譯之后,心里想著應(yīng)該問題不大了,于是測試了一下,不幸的是,各種問題,又經(jīng)過半天的調(diào)整之后,打算放棄了。 于是又去 github 上面搜索看看有沒有其他什么解決方案之類的,無意間搜索到了一個 NPOI.Core 的一個項(xiàng)目,是一個老外移植的 NPOI 到Core平臺,原來已經(jīng)有人做了Core的移植了,克隆下來之后發(fā)現(xiàn)編譯不過,又進(jìn)去看了一下代碼,這個庫目前依賴于Windows平臺,而我們項(xiàng)目是運(yùn)行在CentOS的,其并不能在Linux上運(yùn)行,看來還是空歡喜一場。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26