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. Android 中adb 命令(实用)

    1. 用命令的方式打开关闭mtklog adb  shell am broadcast -a com.mediatek.mtklogger.ADB_CMD -e cmd_name start/stop ...

  2. 【数论】洛谷P1372又是毕业季

    题目背景 "叮铃铃铃",随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业 ...

  3. 简易 (I/O)版本通讯录

    #include <stdio.h> #include<assert.h> //#include<malloc.h> #include<string.h> ...

  4. 《JAVA程序设计与实例》记录与归纳--继承与多态

    继承与多态 概念贴士: 1. 继承,即是在已经存在的类的基础上再进行扩展,从而产生新的类.已经存在的类成为父类.超类和基类,而新产生的类成为子类或派生类. 2. Java继承是使用已存在的类的定义作为 ...

  5. Node.js学习笔记(四): 全局对象

    在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性. 这 ...

  6. java.lang.Class类中的某些方法

    反射的代码会经常遇到,Class类中方法真的多,且用的少,大多用在底层源码这块,既然看到了,就记录一下吧,说不定以后厉害了,自己封装框架,haha getComponentType()方法: Syst ...

  7. 开发 | 小程序wx.setScreenBrightness/wx.getScreenBrightness接口测试

    前言 最近接触了微信小程序 API - wx.setScreenBrightness .wx.getScreenBrightness 接口,调用该接口可以调节并显示手机屏幕亮度数据.对于喜欢腾讯新闻. ...

  8. SpringBoot(一)走进Springboot的世界

    什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...

  9. 【经验分享】Hydra(爆破神器)使用方法

    这个也是backtrack下面很受欢迎的一个工具 参数详解:-R 根据上一次进度继续破解-S 使用SSL协议连接-s 指定端口-l 指定用户名-L 指定用户名字典(文件)-p 指定密码破解-P 指定密 ...

  10. XYZZY(spfa求最长路)

    http://acm.hdu.edu.cn/showproblem.php?pid=1317 XYZZY Time Limit: 2000/1000 MS (Java/Others)    Memor ...