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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EPPlus导出Excel感觉很不错~~~

發布時間:2023/12/4 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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數據填充很簡單,不需要創建行、列,直接定位到單元格賦值即可。兩種定位單元格方式,如下:

  • 通過具體行和列的來定位

    這種方式定位比較靈活,也是用的比較多的。

    代碼實現如下:

    運行效果:

  • 通過單元格標識來定位

    通過單元格標識進行定位,如上圖,圖中Excel的列標識為字母,行標識為數字,所以第一個單元格的定位可以對應為A1,第二個單元格為B1,以此類推。

    代碼實現:

    運行效果,同樣在瀏覽器中輸入對應的接口地址,導出Excel:

2. 公式自動計算;

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

代碼實現:

運行效果:

3. 樣式設置;

  • 單個單元格指定樣式

    代碼實現:

    效果如下:

    雖然效果也能實現,但每一個單元格都指定一遍,太麻煩了;下面的范圍設置就比較給力;

  • 范圍指定樣式

    代碼實現:

    運行效果:

  • 設置公共樣式,如果所有數據都需要統一的對齊樣式,所有單元格都需要邊框,可以統一設置;

    公共樣式直接針對worksheet中的所有單元格設置即可;

    代碼實現:

    運行效果:

4. 合并單元格;

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

  • 列合并

    在我日常開發中,列合并通常在表頭用的比較多,所以算是比較固定的格式,直接指定合并的范圍即可;

    代碼實現:

    調用:

    運行效果:

    當然也可以根據需求,動態設置行進行合并;

  • 行合并

    行合并主要是針對數據,當連續單元格值相等的情況,通常會要求進行行合并;如上圖中前兩行的第一個單元格數據都為111,需將其合并。

    代碼實現:

    調用:

    運行效果:

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

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

  • 自適應列寬:將字體縮小填充到單元格,單元格列寬不變;

  • 自適應內容:單元格根據內容填充,內容多寬就顯示多寬;

代碼實現如下:

運行效果如下:

6. 大數據導出

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

  • 用戶點擊導出操作,后臺生成一條導出記錄,即導出任務,包括導出時選擇的條件、導出狀態等信息;

  • 通過消息隊列或者是后臺任務的形式,獲取到導出任務,得到導出條件,通過后臺任務進行導出操作;

  • 保存對應文件,將導出后臺任務狀態改為已完成;

  • 用戶就可以下載生成的文件;

保存文件的代碼實現:

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

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

總結

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

總結

以上是生活随笔為你收集整理的EPPlus导出Excel感觉很不错~~~的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。