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 ...
随机推荐
- 47. Permutations II (全排列有重复的元素)
Given a collection of numbers that might contain duplicates, return all possible unique permutations ...
- codeforces 70 D. Professor's task 动态凸包
地址:http://codeforces.com/problemset/problem/70/D 题目: D. Professor's task time limit per test 1 secon ...
- manager
S 识别 M 买账 A-安排 R-认同 T-提问识别上级的沟通特点,判断形势,识别沟通的时机摆正自己的角色位置,礼多人不怪,回应情绪做好沟通准备,有策略,安排合适时间听取反馈意见,认同并接纳指导提问 ...
- 同时执行2条不同sql
select * from a: select *from b; 用分号结束.
- 优秀 H5 案例收集 vol.4(不定期更新)
重返木叶村 http://hyrz.qq.com/act/a20160113muyecun/index.html 飞越淘宝奇市 https://g.alicdn.com/fdilab/flyover- ...
- No module named _tkinter
https://www.douban.com/note/524197380/?type=like
- Qt、MVB
使用的陪测网卡是[众志诚MVB网卡],通过串口配置,可以接收和发送MVB数据. 一.MVB通信介绍 对于某一节点[如众志诚MVB网卡],为其配置0x710和0x720端口为源端口,用于发送数据,为其配 ...
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- Eye Protection FAQ
Q: Why does smart protection not work? A: Please make sure the checkbox "Eye Protection" i ...
- 第十一篇:Spark SQL 源码分析之 External DataSource外部数据源
上周Spark1.2刚发布,周末在家没事,把这个特性给了解一下,顺便分析下源码,看一看这个特性是如何设计及实现的. /** Spark SQL源码分析系列文章*/ (Ps: External Data ...