EPPlus 導出 Excel 感覺很不錯~~~

前言

導出成爲很多系統的必備功能,之前分享過導出 PDF 的功能,這裏來分享一下 Excel 的導出;

提到 Excel 導出,NPOI 肯定是很多小夥伴的首選,在以往的項目中也用其完成了很多導出需求;對於 NPOI,個人感覺使用還是相對比較複雜,填充數據,單元格格式或樣式,公式計算等,所以就想着換個庫試試;和同事簡單的溝通,EPPlus 和 Magicodes.IE 感覺都不錯,但從 Nuget 包的下載量來看,EPPlus 明顯更勝一籌,而且在當時的業務需求中 EPPlus 更加合適,所以接下來的分享主要針對 EPPlus。

注:EPPlus 從版本 5 開始,如果使用就要求需要商業許可啦,但從業務功能來看,5 之前的版本對於絕大多數業務場景夠用啦,別排斥,看看之前的版本下載量:

不扯那麼多啦,如果小夥伴瞭解更多關於 EPPlus 信息,github 地址爲:https://github.com/JanKallman/EPPlus/wiki。

接下來以平時常用功能爲主,和小夥伴分享一下使用。

正文

這裏新建一個 API 項目,針對每個功能單獨一個接口進行演示,引入的 EPPlus 版本爲 4.5.3.3。

1. 數據填充;

EPPlus 數據填充很簡單,不需要創建行、列,直接定位到單元格賦值即可。兩種定位單元格方式,如下:

2. 公式自動計算;

在以往導出的操作中,關於計算和彙總的數據很多都是在程序中先算好,然後再填充到單元格中,其實使用 Excel 公式超級方便;

代碼實現:

運行效果:

3. 樣式設置;

4. 合併單元格;

導出數據時,合併單元格是常有的事,我平常用將其分爲列合併和行合併兩種:

5. 自適應列寬和自適應內容

當單元格內容比較多時,通常會用到以下兩種方式,如圖:

代碼實現如下:

運行效果如下:

6. 大數據導出

有些導出需求,需要導出大量的數據,如果通過上述內存的方式導出,可能會因爲數據量大導致數據處理超時或內存泄露導致導出異常,通常這種需求,會採用異步的方式導出數據;大概步驟如下:

保存文件的代碼實現:

將生成的文件和任務、站點關聯起來就可以根據任務下載啦;這裏就不演示了,和上傳圖片一樣道理。

演示的代碼地址:https://github.com/zyq025/DotNetCoreStudyDemo/tree/main/ExportExcelDemo

總結

關於使用 EPPlus 導出 Excel 的常用功能演示就分享到這了;當然也可以進行導入的操作,只是讀取數據而已,這個就留給小夥伴自己實操練習啦。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/iSrSsxDOkePebhgMdP-YpA