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. hbase (local mode) remote access

    如果初学hbase,没必要弄一个集群,hbase的local mode够用了. 这里写一个简单的教程.适用于初学hbase,想要用代码访问hbase的童鞋们. 目录: 0. 准备 1).  开发环境 ...

  2. Scala的安装,入门,学习,基础

    1:Scala的官方网址:http://www.scala-lang.org/ 推荐学习教程:http://www.runoob.com/scala/scala-tutorial.html Scala ...

  3. K:二叉树

    相关介绍:  二叉树是一种特殊的树,它的每个节点最多只有两棵子树,并且这两棵子树也是二叉树.由于二叉树中的两棵子树有左右之分,为此,二叉树是有序树. 二叉树的定义:  二叉树是由n(n>=0)个 ...

  4. 转深入理解 AngularJS 的 Scope作用域

    文章转载英文:what-are-the-nuances-of-scope-prototypal-prototypical-inheritance-in-angularjs 中文:http://www. ...

  5. 解决CentOS7安装Tomcat不能被外部访问的问题

    在CentOS7安装了Tomcat,在服务器内部使用火狐浏览器通过localhost:8080是可以访问的,但是不能被外部访问,主要原因是因为防火墙的存在,导致端口不能被访问.CentOS是使用fir ...

  6. 在ASP.NET Core 2.0中使用CookieAuthentication

    在ASP.NET Core中关于Security有两个容易混淆的概念一个是Authentication(认证),一个是Authorization(授权).而前者是确定用户是谁的过程,后者是围绕着他们允 ...

  7. UML 类图基础

    先留个坑, 后续再填 UML 类图中主要包括以下几种关系: 1. 泛化: 定义:继承关系,指定子类继承父类的所有特征与行为. 图形:三角形箭头,指向父类.         2. 实现 定义:类与接口的 ...

  8. MYSQL:python 3.x连接数据库的方式

    我们想要在我们的mython程序中使用mysql,首先需要安装pymysql模块,安装方式可以使用cmd命令安装, pip3.x install pymysql 首先在我们连接数据库之前先创建一个us ...

  9. 浅谈我的MongoDB学习(二)

    上一篇简单讲了mongodb的安装,mongo的windows服务安装,这样服务器重启windows服务会自动重启mongodb的server,然后我们就可以用客户端去管理数据了.mongodb客户端 ...

  10. HashSet源码阅读

    HashSet的实现基于HashMap 看几个简单的初始化方法 public HashSet() { map = new HashMap<>(); } public HashSet(Col ...