.NET导出Excel之NPOI
前段时间研究过微软的Excel导出、table输出Excel,而它们也存在一些弊端:
1、对于微软的Excel导出存在一些弊端,如:需要安装Office软件、速度问题;
2、table输出Excel在使用过程中发现一个致命的弊端,在一定情况下数据会丢失,因为部门的负责人会针对数据进行导出,分发给相关人员,而接收方接收后发现数据损坏。对于数据丢失我猜测应该属于导出方式,对于table输出我猜测应该是在本地会生成一些缓存文件以供导出的Excel进行动态调用,而发送给另一台机器缓存数据却未发送因此导致数据丢失。
NPOI导出Excel:
对于NPOI的使用的确很是方便,能够快速的制作出我们需要的导出功能,方法简单直白没有其它的依赖性,速度也不错。
1、使用前需要引用NPOI.dll

可以通过NuGet包管理,检索NPOI添加到项目中去:


2、使用方法。简单的使用我们只要注重:HSSFWorkbook、ISheet、IRow和ICell,从名称可以知道它们的大概用处,我们可以像写文章一样的使用它。
HSSFWorkbook相当于一个Excel对象
ISheet相当于Excel里的工作簿
IRow相当于行
ICell相当于列
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using Sunc.Framework.Repository.Utility.Excel; namespace TestConsole
{
class Program
{
static void Main(string[] args)
{ HSSFWorkbook workBook = new HSSFWorkbook();
ISheet sheet = workBook.CreateSheet("工作簿");
IRow row = sheet.CreateRow();
ICell cell = row.CreateCell();
cell.SetCellValue("孙超"); MemoryStream ms = new MemoryStream();
workBook.Write(ms);
var buf = ms.ToArray();
using (FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "a.xls", FileMode.Create, FileAccess.Write))
{
fs.Write(buf, , buf.Length);
fs.Flush();
}
Console.ReadKey();
} }
}

当然SetCellValue属于一个重载方法,供我们出入各种类型的值

还有样式的设置

当然需求决定使用,对于微软的我们可以调用宏,这算是一个比较强大的功能了,但是对于需求不高的我们几乎使用不到,因此适合自己的才是最好的。
参考手册:NPOI使用手册
.NET导出Excel之NPOI的更多相关文章
- ASP.NET导出Excel(利用NPOI和EPPlus库,无需安装Office)
网上提供了很多Asp.net中操作Excel的方法,其中大部分是调用微软的Office组件,下面提供三个无须安装Office即可从Asp.net输出Excel的方法. 1 简单方法 //下面代码输出的 ...
- 导出Excel 2007 (NPOI)
今天在导出Excel2007时报了个错,问是否修复,点yes就提示修复正常了,但具体什么原因没说,如图 之前简单的导出代码是这样写的 public static void ExportToWeb(st ...
- .net 导出Excel插件Npoi的使用
1.NuGet搜索Npoi并安装 2.添加引用将包引用进来 3.Controller里引用 4.使用 public ActionResult ExportExcel() { plist = 数据源 H ...
- DataTable 导出Excel 下载 (NPOI)
public class ExcelHelper { public void DownLoadExcelNew(System.Data.DataTable data, Hashtable h, ...
- ASP.NETCore -----导出Excel文件并下载
本事例分为nopi(安装DotNetCore.NPOI)下载和EPPlus(EPPlus.Core.dll)下载,其中npoi下载演示的是根据执行的模板进行数据下载 npoi帮助类NpoiExcelU ...
- NPOI导出Excel
using System;using System.Collections.Generic;using System.Linq;using System.Text;#region NPOIusing ...
- NPOI操作EXCEL(四)——反射机制批量导出excel文件
前面我们已经实现了反射机制进行excel表格数据的解析,既然有上传就得有下载,我们再来写一个通用的导出方法,利用反射机制实现对系统所有数据列表的筛选结果导出excel功能. 我们来构想一下这样一个画面 ...
- NPOI导出Excel (C#) 踩坑 之--The maximum column width for an individual cell is 255 charaters
/******************************************************************* * 版权所有: * 类 名 称:ExcelHelper * 作 ...
- NPOI、MyXls、Aspose.Cells 导入导出Excel(转)
Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导s出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题: 导出问题: 如果是asp.net,你 ...
随机推荐
- 关于如何解决bootstrap table 列 切换 刷新 高度不一样
在使用bootstrap table时候,碰到bootstrap table 列 切换 刷新 高度不一样的问题,如图所示: 解决这个问题很简单,在你的页头加一句<!DOCTYPE html> ...
- 聊聊编程开发的数据库批量插入(sql)
这里的批量插入,主要是支持SQL的大型存储数据库,本文以Mysql,Oracle,SqlServer,postgresql4类来说明,这大概是国内应用比较多的了.其余的应该可以按照这些去找.提到编程的 ...
- 同步工具类-----循环栅栏:CyclicBarrier
import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; impor ...
- Liu Junqiao:生产环境中shell脚本实例
在生产环境中,我们时常要注意主机的各种硬件状态,如果是规模较大的服务集群zabbix等健康工具当然好用,如果只是一些小规模的服务主机,shell就会表现的更灵活,也更适用,今天就和大家分享一个系统巡检 ...
- 使用css完成物流进度的样式
使用css完成物流进度的样式 效果: css样式: <style type="text/css"> ul li { list-style: none; } .packa ...
- ASP.NET Core 资源打包与压缩
ASP.NET Core 资源打包与压缩 在ASP.NET 中可以使用打包与压缩来提高Web应用程序页面加载的性能. 打包是将多个文件(CSS,JS等资源文件)合并或打包到单个文件.文件合并可减少We ...
- tarjan强连通模板
#include<stdio.h>//用于求一个图存在多少个强连通分量 #include<string.h> #include<vector> using name ...
- Simulating Mouse Events in JavaScript
http://marcgrabanski.com/simulating-mouse-click-events-in-javascript/
- Oracle下如何用rman备份到特定的sequence
本文为摘抄,目的为方便日后阅读: http://docs.oracle.com/cd/B12037_01/server.101/b10734/rcmbackp.htm To determine the ...
- 优步UBER司机全国各地奖励政策汇总 (4月11日-4月17日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...