#region   文件输出

public class BasicInfodsa
{
public string name;
public string phone;
} List zyData = new List();
var zyUserList = BLL_User.getAllZYUserList();
var zyUserGroup = zyUserList.GroupBy(c => c.AccName.Trim());
foreach ( var item in zyUserGroup)
{
if (item.Count() > 1)
{
foreach ( var subitem in item)
{
zyData.Add( new BasicInfodsa { name = subitem.AccName, phone = subitem.CardID });
}
}
} //获得数据
var Data = zyData;
//创建一个新的excel文件
HSSFWorkbook book = new HSSFWorkbook();
//创建一个工作区
ISheet sheet = book.CreateSheet( "sheet1" );
//创建一行 也就是在sheet1这个工作区创建一行 在NPOI中只有先创建才能后使用
IRow row = sheet.CreateRow(0);
for ( int i = 0; i < 5; i++)
{
//设置单元格的宽度
sheet.SetColumnWidth(i, 16 * 156);
}
sheet.SetColumnWidth(4, 30 * 156);
sheet.SetColumnWidth(1, 21 * 156);
//定义一个样式,迎来设置样式属性
ICellStyle setborder = book.CreateCellStyle(); //设置单元格上下左右边框线 但是不包括最外面的一层
setborder.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
setborder.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
setborder.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
setborder.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; //文字水平和垂直对齐方式
setborder.VerticalAlignment = VerticalAlignment.Center; //垂直居中
setborder.Alignment = HorizontalAlignment.Center; //水平居中
setborder.WrapText = true ; //自动换行 //再定义一个样式,用来设置最上面标题行的样式
ICellStyle setborderdeth = book.CreateCellStyle(); //设置单元格上下左右边框线 但是不包括最外面的一层
setborderdeth.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
setborderdeth.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
setborderdeth.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
setborderdeth.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; //定义一个字体样式
IFont font = book.CreateFont();
//将字体设为红色
font.Color = IndexedColors.Red.Index;
//font.FontHeightInPoints = 17;
//将定义的font样式给到setborderdeth样式中
setborderdeth.SetFont(font); //文字水平和垂直对齐方式
setborderdeth.VerticalAlignment = VerticalAlignment.Center; //垂直居中
setborderdeth.Alignment = HorizontalAlignment.Center; //水平居中
setborderdeth.WrapText = true ;  //自动换行 //设置第一行单元格的高度为25
row.HeightInPoints = 25;
//设置单元格的值
row.CreateCell(0).SetCellValue( "姓名" );
//将style属性给到这个单元格
row.GetCell(0).CellStyle = setborderdeth;
row.CreateCell(1).SetCellValue( "电话" );
row.GetCell(1).CellStyle = setborderdeth; //循环的导出到excel的每一行
for ( int i = 0; i < Data.Count; i++)
{
//每循环一次,就新增一行  索引从0开始 所以第一次循环CreateRow(1) 前面已经创建了标题行为0
IRow row1 = sheet.CreateRow(i + 1);
row1.HeightInPoints = 21;
//给新加的这一行创建第一个单元格,并且给这第一个单元格设置值 以此类推...
row1.CreateCell(0).SetCellValue(Convert.ToString(Data[i].name));
//先获取这一行的第一个单元格,再给其设置样式属性 以此类推...
row1.GetCell(0).CellStyle = setborder;
row1.CreateCell(1).SetCellValue(Data[i].phone);
row1.GetCell(1).CellStyle = setborder;
}
System.IO.MemoryStream ms = new System.IO.MemoryStream();
book.Write(ms);
ms.Seek(0, SeekOrigin.Begin);
DateTime dttime = DateTime.Now;
string datetime = dttime.ToString( "yyyy-MM-dd" );
string filename = "一卡通数据.xls" ;
Response.AddHeader( "Content-Disposition" , "attachment; filename=" + filename);
Response.BinaryWrite(ms.ToArray());
#endregion

  

.Net NPOI 简单Demo,一看就会的更多相关文章

  1. angular实现了一个简单demo,angular-weibo-favorites

    前面必须说一段 帮客户做了一个过渡期的项目,唯一的要求就是速度,我只是会点儿基础的php,于是就用tp帮客户做了这个项目.最近和客户架构沟通,后期想把项目重新做一下,就用现在最流行的技术,暂时想的使用 ...

  2. [tornado]websocket 最简单demo

    想法 前两天想看看django 长轮询或者是websocket的方案,发现都不太好使. tornado很适合做这个工作,于是找了些资料,参照了做了个最简单demo,以便备用. 具体的概念就不说了,to ...

  3. 服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)

    [前言] Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butt ...

  4. WPF实现主题更换的简单DEMO

    WPF实现主题更换的简单DEMO 实现主题更换功能主要是三个知识点: 动态资源 ( DynamicResource ) INotifyPropertyChanged 接口 界面元素与数据模型的绑定 ( ...

  5. PHP多进程学习(一)__来初步了解一下PHP多进程及简单demo

    php是一门单进程弱类型的语言,PHP处理多并发主要是依赖服务器或PHP-FPM的多进程及它们进程的复用,多进程的作用优点大家可以去网上了解,PHP实现多进程在实际项目中意义也是不容小觑的.比如:日常 ...

  6. 设计模式之单例模式的简单demo

    /* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...

  7. Spring的简单demo

    ---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...

  8. 使用Spring缓存的简单Demo

    使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...

  9. Managed DirectX中的DirectShow应用(简单Demo及源码)

    阅读目录 介绍 准备工作 环境搭建 简单Demo 显示效果 其他 Demo下载 介绍 DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染.交互式音乐和 ...

  10. Solr配置与简单Demo[转]

    Solr配置与简单Demo 简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目.它的官方网址在http://lucene.apache.org/sol ...

随机推荐

  1. Redis分布式锁应用

    Redis锁的使用 起因:分布式环境下需对并发进行逻辑一致性控制 架构:springboot2.Redis IDEA实操 先新建RedisLock组件 注:释放锁使用lua脚本保持原子性 @Compo ...

  2. day36-ThreadLocal

    ThreadLocal 线程数据共享和安全 1.什么是ThreadLocal? ThreadLocal的作用,可以实现在同一个线程数据共享,从而解决多线程数据安全问题 当http请求发送到Tomcat ...

  3. 深入理解Whitelabel Error Page底层源码

    深入理解Whitelabel Error Page底层源码 (一)服务器请求处理错误则转发请求url StandardHostValve的invoke()方法将根据请求的url选择正确的Context ...

  4. 记开源项目:DotNetCore.CAP.MySql问题分析:only mysqlparameter objects may be stored

    1.  简介 最近在学习分布式事务及解决方案,最终找到了开源项目DotNetCore.CAP ,因为自己用的MySql数据库比较多.于是也使用MySQL+EFCore+RabbitMQ+CAP实现事务 ...

  5. Vue DevUI v1.4 版本发布:从体验、效率、质量三个方面做了全方位的优化🎉

    2022年9月1日,我们正式宣布 Vue DevUI 组件库发布 v1.0 版本. Vue DevUI 1.0 正式发布 经过100多天的持续迭代,我们正式发布 v1.4.0 版本,共新增: 11位贡 ...

  6. 常用的渗透测试工具——SQLMap安装

    SQLMap是一个自动化的SQL注入工具,其主要功能是扫描.发现并利用给定URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库是MySQL.Qracle.PostgreSQL.Microsoft ...

  7. 【转载】ADOX.Catalog中文帮助详细说明chm文档

    首先给个完全版的地址,如果您机器上装过OFFICE应该可以打开的:ADOX 对象模型, 地址是:"C:\Program Files\Common Files\Microsoft Shared ...

  8. 《Kubernetes Operator 开发进阶》- 作者絮絮叨

    目录 今天聊啥 本书读者 推荐序 推荐序1 - 邓洪超 推荐序2 - 任晶磊 推荐语 推荐语1 - 张磊 推荐语2 - 宋净超 推荐语3 - 王泽锋 推荐语4 - 周鹏飞 推荐语5 - 郑东旭 本书简 ...

  9. [C++]什么是POD?

    POD意指Plain Old Data,也就是标量性别(Scalar Types)或传统的C Struct型别.POD型别必然拥有trival constructor/destructor/copy/ ...

  10. 线性构造treap

    数据结构 线性构造treap treap的线性构造可以使复杂度锐减到\(O(n)\),很优秀 treap的本质就是小根堆+二叉搜索树,即保证val满足搜索树的同时,维护rad的小根堆. 现在我们先把数 ...