有史以来功能最全,使用最简单的excel导入/导出工具
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导入/导出工具的更多相关文章
- 一个基于POI的通用excel导入导出工具类的简单实现及使用方法
前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...
- Excel导入导出工具(简单、好用且轻量级的海量Excel文件导入导出解决方案.)
Excel导入导出工具(简单.好用且轻量级的海量Excel文件导入导出解决方案.) 置顶 2019-09-07 16:47:10 $9420 阅读数 261更多 分类专栏: java 版权声明:本 ...
- Mego(04) - NET简单实现EXCEL导入导出
前言 相信做过信息系统的朋友都会遇到EXCEL导入导出的相关开发,做过不少EXCEL导入导出后总结起来大致有如下几种方式实现: ADO.NET的OldDb或ODBC连接EXCEL使用DataTable ...
- 简单excel导入导出
import java.io.File;import java.io.IOException; import jxl.Cell;import jxl.Sheet;import jxl.Workbook ...
- 利用Apache POI 实现简单的Excel表格导出
1.利用POI API实现简单的Excel表格导出 首先假设一个学生实体类: package com.sun.poi.domain; import java.io.Serializable; impo ...
- 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件
今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...
- thinkphp-PHP实现Excel导入 导出功能
Excel导出 //功能:导出题库模板 public function get_contract_ex() { ob_get_clean(); header("Content-Typ:tex ...
- EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案使用详情功能-通道配置Excel导入导出
使用EasyNVR的用户都有知道,由于EasyNVR是将设备与EasyNVR的通道进行绑定的,因此EasyNVR是通过手动的通道配置来进行设备接入的,这样可以做到将设备的和通道对应的接入.但是,如果手 ...
- 功能齐全、效率一流的免费开源数据库导入导出工具(c#开发,支持SQL server、SQLite、ACCESS三种数据库),每月借此处理数据5G以上
软件名:DataPie 功能:支持SQL server.SQLite.ACCESS数据库的导入.导出.存储过程调用,支持EXCEL2007.EXCEL2003.ACCESS2007. CSV文件导入数 ...
随机推荐
- Java学习笔记6---字符串比较方法compareTo(String str)
方法原型为int compareTo(String str),返回值为int型,参数为字符串类型. 下面是简单示例: /* * compareTo()返回参与比较的两个字符串的ascii码差值 * O ...
- 对《cookie之困》的一些总结与思考
0x00 前言 早些时候在gayhub翻安全大会的paper,翻到了kcon的一些paper. https://github.com/knownsec/KCon 从前辈们的paper中学到了不少,也产 ...
- sqoop数据迁移(基于Hadoop和关系数据库服务器之间传送数据)
1:sqoop的概述: (1):sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具.(2):导入数据:MySQL,Oracle导入数据到Hadoop的HDFS.HIV ...
- 【倍增】洛谷P3379 倍增求LCA
题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先. 输入输出格式 输入格式: 第一行包含三个正整数N.M.S,分别表示树的结点个数.询问的个数和树根结点的序号. 接下来N-1行每 ...
- 转自 BotVS 量化平台社区 --- 如何从绩效报告中分辨出“好模型 or 坏模型”
## NO:01 在投资行业一直有一个说法,靠交易盈利是所有赚钱方式中最难的一种,以至于有人戏谑称交易为投资领域的搬砖工作. 为了提升交易效率.挖掘潜在投资机会,量化交易伴随着信息技术的发展大行其道, ...
- C语到C++注释转换小项目
可将其分为下面四个状态进行讨论即可: #include<stdio.h> #include<windows.h> #define INPUTFILE "input.c ...
- ES6小点心第二弹——底部浮现弹窗
小点心,顾名思义,开箱即食,拿来即用. 献上第二个小点心:SlidePopup. GitHub 在线演示 GitHub 上欢迎大家来找茬^_^ 前端朋友们,今天要介绍的这款小点心牛B了.相信是个前端都 ...
- 《跟我学IDEA》六、插件(编码利器)
idea的另一个可爱之处,就是它的强大的插件,下面我以CodeGlance插件为例,这个可以快速定位代码. 第一节:安装插件 ● All plugins 显示所有插件. ● Enabled 显示当前所 ...
- GStreamer Windows tutorial demo 开发环境配置
GStreamer 示例程序在 Windows 环境配置时坑比较多,好不容易配置成功了,写篇文档分享一下安装的关键步骤 官方文档见:https://gstreamer.freedesktop.org/ ...
- Ajax方式分页加载列表实现
在前面: 最近需要用到这个功能,所以这几天一直在研究这个,目前大致功能已实现,后续需要完善,但需要的功能点已完成,记录下: 1.分页功能引入bootstrap的分页插件: <script typ ...