有史以來功能最全,使用最簡單的excel導入/導出工具

来源:https://www.cnblogs.com/xuanbg/archive/2018/02/01/8399732.html
-Advertisement-
Play Games

Github地址:https://github.com/xuanbg/Utility。 還有其他一些福利,請各位園友自取。下麵表格中的方法帶有泛型參數,博客園的Markdown似乎不能正確顯示。請移步github看readme。 構造方法 1、用於導出Excel文件 NpoiHelper(Excel ...


Github地址:https://github.com/xuanbg/Utility
還有其他一些福利,請各位園友自取。下麵表格中的方法帶有泛型參數,博客園的Markdown似乎不能正確顯示。請移步github看readme。

構造方法

1、用於導出Excel文件

NpoiHelper(ExcelVer ver = XLS)

可使用參數決定生成的文件版本,預設為97-2004版本(.xls)。

2、用於導入Excel文件

NpoiHelper(string file)

NpoiHelper(byte[] data)

NpoiHelper(Stream stream)

三個方法分別適用於:本地文件路徑、位元組數組及數據流。
- - - -

導出數據的方法

方法 功用
void exportFile(string file) 導出工作簿到Excel文件
void exportFile 使用指定的數據集生成Sheet並導出工作簿到Excel文件
void exportFile 使用指定的數據集生成指定名稱的Sheet並導出工作簿到Excel文件
MemoryStream exportStream() 導出工作簿到數據流
MemoryStream exportStream 使用指定的數據集生成Sheet並導出工作簿到數據流
MemoryStream exportStream 使用指定的數據集生成指定名稱的Sheet並導出工作簿到數據流
byte[] exportByteArray() 導出工作簿到位元組數組
byte[] exportByteArray 使用指定的數據集生成Sheet並導出工作簿到位元組數組
byte[] exportByteArray 使用指定的數據集生成指定名稱的Sheet並導出工作簿到位元組數組
void createTemplate 創建一個用於導入數據的模板Sheet
void createTemplate 創建一個用於導入數據且指定名稱的Sheet模板
void createSheet 使用指定的數據集在工作簿中創建一個Sheet
void createSheet 使用指定的數據集在工作簿中創建一個指定名稱的Sheet

導入數據的方法

方法 功用
List 導入Excel文件中第一個Sheet的數據到指定類型的集合
List 導入指定位置的Sheet的數據到指定類型的集合
List 導入指定名稱的Sheet的數據到指定類型的集合

其他方法

方法 功用
bool sheetIsExist(int sheetIndex) 指定位置的Sheet是否存在
bool sheetIsExist(string sheetName) 指定名稱的Sheet是否存在
bool verifyColumns(int sheetIndex, string keys) 校驗指定位置的Sheet是否包含關鍵列,關鍵列名稱以英文逗號分隔
bool verifyColumns(string sheetName, string keys) 校驗指定名稱的Sheet是否包含關鍵列,關鍵列名稱以英文逗號分隔
bool verifyColumns 校驗指定位置的Sheet是否包含關鍵列
bool verifyColumns 校驗指定名稱的Sheet是否包含關鍵列

用於導出/導入數據的實體類屬性的特性說明

特性 功用
name(預設特性) Excel中的對應的列名
dateFormat 列的時間/日期格式,預設為:yyyy-MM-dd
policy Ignorable:導出時忽略(不會導出),Required:導入時文件必須包含此列,否則無法通過關鍵列校驗

示例如下:

public class Test
{
    [ColumnName(Policy.Ignorable)]
    public string id { get; set; }

    [ColumnName("名稱")]
    public string name { get; set; }

    [ColumnName("更新時間", dateFormat = "yyyy-MM-dd hh:mm:ss", policy = Policy.Required)]
    public DateTime updateTime { get; set; }
}

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

-Advertisement-
Play Games
更多相關文章
  • 從百度里搜索里搜索了很多jwt的文章,跟著文章寫了一個demo,這裡記錄下學習過程中碰上的問題。看文章多遍,不如手工實現一次。 模板已上傳到 https://github.com/dogvane/webapi_jwt_template ...
  • 一、軟體安裝 Redis下載地址:https://github.com/MSOpenTech/redis/releases 因為官方並不支持windows系統,需要從微軟的GitHub上下載。 解壓縮後文件夾內容如圖所示(版本3.2.100): 最開始會用到的文件有redis-server.exe、 ...
  • 環境:vs2017 版本:15.5.6 這裡說明下, Razor頁面模式跟mvc出現了嚴重的不同。正如微軟官方說的一樣“Razor 頁面是 ASP.NET Core MVC 的一個新功能,它可以使基於頁面的編碼方式更簡單高效。” 但就代碼說沒有什麼不同幾乎完全一樣,但是存放的位置卻有了根本的區別。個 ...
  • <<操作系統精髓與設計原理>>讀書筆記(一) 併發性:互斥與同步 併發問題是所有問題的基礎,也是操作系統設計的基礎。併發包括很多設計問題,其中有進程間通信,資源共用與競爭,多個進程活動的同步以及分配給進程的處理器時間的。 和併發相關的關鍵術語:原子操作: 一個或多個指令的序列,對外是不可分的;即沒有 ...
  • 假設現在有三個項目,ProjectA,ProjectB,ProjectC。 ProjectA項目中有倆個介面,Get(),GetTest( string code )。 ProjectB項目中一個介面,GetHelloWorld()。 ProjectC是一個後臺任務。 遇到的問題是: Project ...
  • 隨機好說,不重覆以前一直是while(true)去判斷,偶然看到這個方法,for裡面兩個條件i++寫在if裡面,從來沒有這麼用過,記錄一下 int[] a = new int[100]; var rand = new Random(); for (int i = 0; i < 100; ) { va ...
  • Asp.Net Core 是開源,跨平臺,模塊化,快速而簡單的Web框架. "Asp.net Core官網的一個合集,方便一次性Clone" 目錄 "快速入門" "安裝" "一個最小的應用" "項目模板" "路由" "靜態文件" "頁面渲染" "請求" "錯誤和重定向" "關於響應" "會話" "日 ...
  • 1. 說明 在企業應用系統領域,會面對不同系統之間的通信、集成與整合,尤其當面臨異構系統時,這種分散式的調用與通信變得越發重要。其次,系統中一般會有很多對實時性要求不高的但是執行起來比較較耗時的地方,比如發送簡訊,郵件提醒,更新文章閱讀計數,記錄用戶操作日誌等等,如果實時處理的話,在用戶訪問量比較大 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...