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代码生成可搜索选择下拉列表

    1.因为动态的css楼主写不出来,因此需要引入layui中的css样式:<link rel="stylesheet" href="${ctxStatic}/layu ...

  2. 用grant命令为用户赋权限以后,登录时,出现:ERROR 1045 (28000)

    ERROR 1045(28000)信息是因为权限的问题.这个ERROR分为两种情况: 第一种: ERROR 1045 (28000): Access denied for user 'root'@'l ...

  3. mysql之其他

    一 IDE工具介绍 下载链接:https://pan.baidu.com/s/1bpo5mqj 掌握: 1. 测试+链接数据库 2. 新建库 3. 新建表,新增字段+类型+约束 4. 设计表:外键 5 ...

  4. python检测404页面

    某些网站为了实现友好的用户交互,提供了一种自定义的错误页面,而不是显示一个大大的404 ,比如CSDN上的404提示页面如下: 这样虽然提高了用户体验,但是在编写对应POC进行检测的时候如果只根据返回 ...

  5. hook键盘驱动中的分发函数实现键盘输入数据的拦截

    我自己在看<寒江独钓>这本书的时候,书中除了给出了利用过滤的方式来拦截键盘数据之外,也提到了另外一种方法,就是hook键盘分发函数,将它替换成我们自己的,然后再自己的分发函数中获取这个数据 ...

  6. Django--权限组件

    创建组件 需求分析: 创建独立app, rbac ##注意: app创建后需要注册到setting.py中 INSTALLED_APPS = [ 'django.contrib.admin', 'dj ...

  7. .net的retrofit--WebApiClient库深入篇

    前言 本篇文章的内容是对上一篇.net的retrofit--WebApiClient库的深层次补充,你可能需要先阅读上一篇才能理解此篇文章.本文将详细地讲解WebApiClient的原理,结合实际项目 ...

  8. EMMC与nand flash的区别【转】

    1.NAND Flash 是一种存储介质,要在上面读写数据,外部要加主控和电路设计. 2.eMMC是NAND flash+主控IC ,对外的接口协议与SD.TF卡类似:对厂家而言简化了电路设计,降低了 ...

  9. 在做vue计算属性,v-for处理数组时遇到的一个bug

    bug: You may have an infinite update loop in a component render function 无限循环 需要处理的数组(在 ** ssq **里): ...

  10. 从好用到更好用 —— 2017 年又拍云 CDN 功能更新回顾

    又拍云一直致力于为客户带来更好的服务,在 2017 年又拍云 CDN 服务进行了数次重大更新,在功能上更加全面.完善,进一步提升了 CDN 的稳定性与安全性. 在过去一年里又拍云 CDN 服务共进行了 ...