老牌開源Office操作組件NPOI現已支持.NET Core

来源:https://www.cnblogs.com/yilezhu/archive/2019/01/15/10269281.html
-Advertisement-
Play Games

昨天在微信群里聽到老牌Excel開發利器NPOI的作者瞿總說4.6.1版本的NPOI已經支持.NET Standard 2.0了,這也就意味著你可以在.NET Core中使用NPOI了。 寫在前面 曾經的.NET Framework時代就很喜歡使用這個組件來對Excel的進行操作,可是隨著.NET ...


昨天在微信群里聽到老牌Excel開發利器NPOI的作者瞿總說4.6.1版本的NPOI已經支持.NET Standard 2.0了,這也就意味著你可以在.NET Core中使用NPOI了。

作者:依樂祝
原文地址 :https://www.cnblogs.com/yilezhu/p/10269281.html

寫在前面

曾經的.NET Framework時代就很喜歡使用這個組件來對Excel的進行操作,可是隨著.NET Core時代的到來以及NPOI不支持.NET Core所以就找到了園子里的大神楊曉東對NPOI的.NET Core的移植版,可是使用的過程中的如果對這個移植的插件進行深入的使用的話還是有部分問題,可能正如楊曉東大神自己所說:“去年的那個版本是針對於 .NET Core 1.0 的,從發佈截止現在在 NuGet 大概有 2K 多的下載量,說明還是有很多同學在使用 NPOI 的,社區中也得到了很多同學的推廣。 但是上一個移植的版本也有諸多缺陷和 bug,在 Github 上也收到了一些 Issue 進行反饋,很多 Bug 可能是移植過程中的bug,但是對於這些 Bug 可能我也無能為力,因為 NPOI 的代碼是非常龐大和複雜的。”
不過也再次特別感謝下楊曉東大神對NPOI的.NET Core版本的移植也才能讓我們在.NET Core1.0以及.NET Core2.0的一段時間內繼續使用這個NPOI。

有興趣的小伙伴可以看下楊曉東大神的版本這裡是介紹《NET Core 2.0 開源Office組件 NPOI

因此在得知NPOI的作者瞿總已經完成對NPOI的升級並支持.NET Standard 2.0後特此把這個好消息告訴全體.NET Core開發者們。自此我們又可以盡情的在.NET Core中繼續使用這個開源的老牌Office組件了!反正我表示挺開心的!而且如果你在使用的過程中有任何問題都可以在GitHub上對作者提issue,作者也會以迅雷不及掩耳之勢之勢進行修複

什麼是NPOI

說了半天NPOI已經可以在.NET Core中使用了,可能對於新手朋友還是不知道這玩意究竟是什麼?其實你可以看看百度百科《NPOI》裡面有詳細的講述。我只能跟你說使用 NPOI 你就可以在沒有安裝 Office 或者相應環境的機器上對 WORD/EXCEL 文檔進行讀寫操作,十分方便。

另外NPOI的原作者的GitHub地址是:https://github.com/tonyqus/npoi

裡面也有詳盡的描述

如何使用

通過Nuget直接添加NPOI的最新引用即可使用

Install-Package NPOI -Version 2.4.1

然後你就可用像之前一樣進行操作了!

但是如果你想運行在Linux上可能需要註意一下:

由於NPOI使用System.Drawing.Common,因此必須在Linux系統上安裝libgdiplus和libc6。

Ubuntu 16.04及以上

apt-get install libgdiplus libc6-dev

ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll

然後就可以在Linux系統上跑起來了!

例子

我們有很多例子可供您學習如何使用NPOI。

請查看https://github.com/tonyqus/npoi/tree/master/examples

文件夾名稱 示例描述
HSSF 有關Excel 97-2003格式的示例(* .xls)
XSSF 有關Excel 2007+格式的示例(* .xlsx)
XWPF 有關Word 2007+格式(* .docx)的示例
POIFS 關於OLE2文檔/ ActiveX文檔的示例
OOXML 有關OpenXML文件的示例

第三方博客

使用NPOI - C#和WEB API導出到Excel

使用NPOI在.NET中構建漂亮的XLS文檔

如何使用NPOI閱讀Excel 2007文檔

如何使用NPOI創建Excel電子錶格

NPOI 2.0 - 將Excel XLS文檔轉換為HTML格式

NPOI與Excel表和動態圖表

總結

今天給大家介紹了一款.NET Core Office開發利器NPOI已經支持.NET Core了!希望對大家有所幫助!今後我們的實戰教程之CMS系統裡面對Excel的操作也將使用這個組件,屆時我講實戰講解如何使用這個組件,最後感謝大家的閱讀。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.Window-Preferences-Server-Runtime Environments 2.點擊Add,選擇相應的Tomcat版本,我的是7.0的所以我選擇這個。並勾選Create a new local server,點擊next 3.點擊Browse,選擇Tomcat的本地安裝路徑,並 ...
  • jdk8 Stream map 取對象中某項的值 map 取對象中某項的值 問題 ... List<ScreenWiperResponse> screenWiperList= screenWiperResponseList.stream().map(CarAdapterForScreenWiperR ...
  • Django 系列博客(十) 前言 本篇博客介紹在 Django 中如何對資料庫進行增刪查改,主要為對單表進行操作。 ORM簡介 查詢數據層次圖解:如果操作 mysql,ORM 是在 pymysql 之上又進行了一層封裝。 MVC 或者 MTV 框架中包括一個重要的部分,就是 ORM,它實現了數據模 ...
  • 1. 線程的其他方法 2. 線程隊列 線程隊列中三種隊列形式,所使用的方法相同,都有put(),get(),put_nowait(),get_nowait(),qsize(),full(),empty() 等這些方法.就只傳一組先進先出的代碼 import queue 先進先出隊列:queue.Qu ...
  • php連接資料庫,以及日期處理函數 $conn=mysql_connect("10.0.10.0:0000","root","123456") or die("資料庫連接失敗").mysql_error(); mysql_select_db("database"); $querry1 = "SELE ...
  • 線程的其他方法: from threading import Thread,current_thread: currrent_thread().getName() 獲取線程的名稱 current_thread().ident 獲取到線程的id current_thread() 當前線程的信息 imp ...
  • ASP.NET Core 從2.2版本開始,採用了一個新的名為Endpoint的路由方案,與原來的方案在使用上差別不大,但從內部運行方式上來說,差別還是很大的。上一篇詳細介紹了原版路由方案的運行機制,本文仍然通過一幅圖來瞭解一下新版的運行機制,最後再總結一下二者的異同點。(ASP.NET Core ...
  • 1. 前言 在UWP中DataTemplate是一個十分重要的功能,並且幾乎無處不在,例如DataGrid中的DataGridTemplateColumn: 而且DateTemplate(或ControlTemplate)極有可能需要由代碼動態生成。 UWP大致上有兩種使用代碼生成DateTempl ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...