NPOI 生成 Excel
前言
在 c# 中可以使用对应的com组件生成或操作excel,但前提是必须安装了Office Excel , 但服务器端不一定会安装Excel,而且它操作起来并不简单。但是,使用NPOI这个第三方库,可以在服务器不需要安装Excel的情况下,简单快捷的完成Excel相关操作。
使用
安装对应
Nuget包使用帮助类
/// <summary>
/// 返回excel的字节数组
/// 可储存为文件
/// 文件后缀为".xls"
/// </summary>
/// <typeparam name="T">是数据对象</typeparam>
/// <param name="dataList">数据列表</param>
/// <param name="headers">表头</param>
/// <returns></returns>
public static byte[] GetExcel<T>(IList<T> dataList, IList<string> headers)
{
if (dataList == null || dataList.Count == 0)
throw new ArgumentException("无效数据列表");
if (headers == null)
throw new ArgumentNullException();
var wk = new HSSFWorkbook(); //表示一个Excel文件
var sheet = wk.CreateSheet(); // Excel中的sheet
var header = sheet.CreateRow(0); // 第一行储存表头信息
for (var i = 0; i < headers.Count; i++)
{
header.CreateCell(i).SetCellValue(headers[i]);
}
for (var i = 0; i < dataList.Count; i++)
{
var o = dataList[i];
var row = sheet.CreateRow(i + 1);
var cellNo = 0;
object value;
string cell;
// 如果已知要储存哪些属性, 可不使用反射
foreach (var info in o.GetType().GetProperties())
{
value = info.GetValue(o, null);
cell = value == null ? String.Empty : value.ToString();
row.CreateCell(cellNo++).SetCellValue(cell);
}
}
byte[] data;
using (var ms = new MemoryStream())
{
wk.Write(ms);
data = ms.GetBuffer();
wk.Close();
}
return data;
}
NPOI 生成 Excel的更多相关文章
- 使用NPOI生成Excel级联列表
目录 1 概要 1 2 磨刀不误砍柴工——先学会Excel中的操作 2 3 利用NPOI生成导入模板 7 3.1 设置workbook&sheet ...
- .net利用NPOI生成excel文件
整理代码,这个是生成excel文件,用的是HSSF的方式,只能生成65535行,256列的数据,如果要看office07之后的生成,之前的随笔里提过.这个是一个完整的过程. 首先是已经查找好的数据,这 ...
- Aspose.Cell和NPOI生成Excel文件
1.使用Aspose.Cell生成Excel文件,Aspose.Cell是.NET组件控件,不依赖COM组件 1首先一点需要使用新建好的空Excel文件做模板,否则容易产生一个多出的警告Sheet 1 ...
- NPOI 生成Excel (单元格合并、设置单元格样式:字段,颜色、设置单元格为下拉框并限制输入值、设置单元格只能输入数字等)
NPIO源码地址:https://github.com/tonyqus/npoi NPIO使用参考:源码中的 NPOITest项目 下面代码包括: 1.包含多个Sheet的Excel 2.单元格合并 ...
- NPOI 生成 excel基本设置
//设置页眉页脚 tempSheet.Header.Center = "2017-04-27"; tempSheet.Footer.Center = "√" + ...
- npoi生成excel流并在客户端下载(html+后台 )
//前端页面 <body> <input type="button" value="导出Excel" class="button&q ...
- NPOI生成excel并下载
NPOI文件下载地址:http://npoi.codeplex.com/ 将文件直接引用至项目中即可,,,,, 虽然网上资料很多,但有可能并找不到自己想要的功能,今天闲的没事,所以就稍微整理了一个简单 ...
- 通过 NPOI 生成 Excel
HSSFWorkbook hssfworkbook; ISheet sheet1; public void BuildExcel() { hssfworkbook = new HSSFWorkbook ...
- NPOI 生成Excel
private void btnSave_Click(object sender, EventArgs e) { ) != ".xls") { MessageBox.Show(&q ...
随机推荐
- Uvalive 7037 The Problem Needs 3D Arrays(最大密度子图)
题意:给一段子序列,定义密度:子序列中的逆序对数/子序列的长度 求这个序列的对大密度. 分析:将序列中的每个位置视作点,逆序对\(<i,j>\)之间表示点i与点j之间有一条无向边.所以就转 ...
- Winter-2-STL-B Brackets 解题报告及测试数据
Time Limit:2000MS Memory Limit:65536KB Description Given a string consisting of brackets of two ...
- spark 作业提交
kafka-topics.sh --describe --zookeeper xxxxx:2181 --topic testkafka-run-class.sh kafka.tools.GetOffs ...
- QML学习之浅谈Window
转载地址:http://blog.csdn.net/kanchuan1905/article/details/53762788 在Qt Quick的世界里,Window对象用于创建一个与操作系统相关 ...
- Oracle中用sql语句取随机数和整数
--- 应用round(5.678,3)保留小数 应用floor(5.678)保留整数 应用dbms_random.value(30,50)取得随机数 --- dbms_random包 获得随机小数S ...
- CSS Outline(轮廓)
CSS Outline(轮廓) 一.CSS 轮廓(outline) 轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用. CSS outline 属性规定元素轮廓 ...
- Android模拟器Intel Atom下载安装配置
https://software.intel.com 在Android x86模拟器Intel Atom x86 System Image时提示Intel execute disable bit(xd ...
- 关于Log4Net的使用和配置
1. 添加log4net.dll引用 2.在添加引用的那层的 AssemblyInfo.cs 注册 : [assembly: log4net.Config.XmlConfigura ...
- 20145324 《Java程序设计》第8周学习总结
20145324 <Java程序设计>第8周学习总结 教材学习内容总结 第十四章 1.NIO使用频道来衔接数据节点,可以设定缓冲区容量,在缓冲区中对感兴趣的数据区块进行标记,提供clear ...
- [BZOJ1131]Sta
Description 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 Input 给出一个数字N,代表有N个点.N<=1000000 下面N-1条边. Output ...