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; }
}
