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(string file, List list) 使用指定的数据集生成Sheet并导出工作簿到Excel文件
void exportFile(string file, List list, string sheetName) 使用指定的数据集生成指定名称的Sheet并导出工作簿到Excel文件
MemoryStream exportStream() 导出工作簿到数据流
MemoryStream exportStream(List list) 使用指定的数据集生成Sheet并导出工作簿到数据流
MemoryStream exportStream(List list, string sheetName) 使用指定的数据集生成指定名称的Sheet并导出工作簿到数据流
byte[] exportByteArray() 导出工作簿到字节数组
byte[] exportByteArray(List list) 使用指定的数据集生成Sheet并导出工作簿到字节数组
byte[] exportByteArray(List list, string sheetName) 使用指定的数据集生成指定名称的Sheet并导出工作簿到字节数组
void createTemplate() 创建一个用于导入数据的模板Sheet
void createTemplate(string sheetName) 创建一个用于导入数据且指定名称的Sheet模板
void createSheet(List list) 使用指定的数据集在工作簿中创建一个Sheet
void createSheet(List list, string sheetName) 使用指定的数据集在工作簿中创建一个指定名称的Sheet

导入数据的方法

方法 功用
List importSheet() 导入Excel文件中第一个Sheet的数据到指定类型的集合
List importSheet(int sheetIndex) 导入指定位置的Sheet的数据到指定类型的集合
List importSheet(string sheetName) 导入指定名称的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(int sheetIndex) 校验指定位置的Sheet是否包含关键列
bool verifyColumns(string sheetName) 校验指定名称的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; }
}

有史以来功能最全,使用最简单的excel导入/导出工具的更多相关文章

  1. 一个基于POI的通用excel导入导出工具类的简单实现及使用方法

    前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...

  2. Excel导入导出工具(简单、好用且轻量级的海量Excel文件导入导出解决方案.)

    Excel导入导出工具(简单.好用且轻量级的海量Excel文件导入导出解决方案.) 置顶 2019-09-07 16:47:10 $9420 阅读数 261更多 分类专栏: java   版权声明:本 ...

  3. Mego(04) - NET简单实现EXCEL导入导出

    前言 相信做过信息系统的朋友都会遇到EXCEL导入导出的相关开发,做过不少EXCEL导入导出后总结起来大致有如下几种方式实现: ADO.NET的OldDb或ODBC连接EXCEL使用DataTable ...

  4. 简单excel导入导出

    import java.io.File;import java.io.IOException; import jxl.Cell;import jxl.Sheet;import jxl.Workbook ...

  5. 利用Apache POI 实现简单的Excel表格导出

    1.利用POI API实现简单的Excel表格导出 首先假设一个学生实体类: package com.sun.poi.domain; import java.io.Serializable; impo ...

  6. 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件

    今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...

  7. thinkphp-PHP实现Excel导入 导出功能

    Excel导出 //功能:导出题库模板 public function get_contract_ex() { ob_get_clean(); header("Content-Typ:tex ...

  8. EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案使用详情功能-通道配置Excel导入导出

    使用EasyNVR的用户都有知道,由于EasyNVR是将设备与EasyNVR的通道进行绑定的,因此EasyNVR是通过手动的通道配置来进行设备接入的,这样可以做到将设备的和通道对应的接入.但是,如果手 ...

  9. 功能齐全、效率一流的免费开源数据库导入导出工具(c#开发,支持SQL server、SQLite、ACCESS三种数据库),每月借此处理数据5G以上

    软件名:DataPie 功能:支持SQL server.SQLite.ACCESS数据库的导入.导出.存储过程调用,支持EXCEL2007.EXCEL2003.ACCESS2007. CSV文件导入数 ...

随机推荐

  1. 前端js之JavaScript

    知识预览 一小知识 二 JavaScript的基础 BOM对象 DOM对象 实例练习 js拓展 小知识 核心(ECMAScript) 文档对象模型(DOM) Document object model ...

  2. js 抓取屏幕宽度设置字体大小 rem

    var doc = window.document var docEl = doc.documentElement var tid function refreshRem () { var width ...

  3. jq龙禧轮播图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. eclipse自动提示功能没了的解决方法

    eclipse没有自动提示功能,也就是当一个对象居然点不出他的相关方法.后来网上搜索了下,成功的 办法是. 1.我window->Preferences->Java->Editor- ...

  5. CTF---Web入门第十二题 程序逻辑问题

    程序逻辑问题分值:20 来源: 实验吧 难度:中 参与人数:6909人 Get Flag:1993人 答题人数:2070人 解题通过率:96% 绕过 解题链接: http://ctf5.shiyanb ...

  6. UVA424高精度加法

    One of the first users of BIT's new supercomputer was Chip Diller. He extended his exploration of po ...

  7. WERTYU(getchar()用法)

    题目连接:http://acm.tju.edu.cn/toj/showp.php?pid=13681368.   WERTYU Time Limit: 1.0 Seconds   Memory Lim ...

  8. kafka数据迁移实践

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:mikealzhou 本文重点介绍kafka的两类常见数据迁移方式:1.broker内部不同数据盘之间的分区数据迁移:2.不同broker ...

  9. Genymotion的安装与使用(附百度云盘下载地址,全套都有,无需注册Genymotion即可使用)

    http://blog.csdn.net/scythe666/article/details/70216144 附百度云盘下载地址 :http://pan.baidu.com/s/1jHPG7h8 1 ...

  10. 使用setTimeout实现setInterval

    setInterval = () =>{ console.log(1) //使用递归 setTimeout(setInterval,1000); }; setInterval()