#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. Hadoop安装-分布式-Fully

    Hadoop安装-分布式-Fully 〇.所需资料 一.配置 1.基础配置 (1)系统安装 (2)hostname主机名配置 (3)ip地址.dns.hosts映射文件配置 (4)关闭防火墙与seli ...

  2. 【重难点】函数式接口、函数式编程、匿名内部类、Lambda表达式、语法糖

    一.函数式接口 1.概念 仅有一个抽象方法的接口 适用于函数式编程(Lambda表达式) 常见:Runnable.Comparator<>.生产型接口Producer的get方法.消费型接 ...

  3. 24V转5V,24V转3.3V稳压芯片的电路图,,PCB和BOM

    1,PW6206与PW6513系列是一款高精度,40V高输入电压,低静态电流,低压降线性稳压器具有高纹波抑制.在VOUT=5V&VIN=7V时,负载电流高达300mA,(输入与输出电压的压差越 ...

  4. React DevUI 18.0 正式发布🎉

    Jay 是一位经验丰富并且对质量要求很高的开发者,对 Angular.React 等多种框架都很熟悉,我们在开源社区认识,在我做开源社区运营的过程中,Jay 给了我很多帮助,他也是 React Dev ...

  5. LeetCode HOT 100:组合总和

    题目:39. 组合总和 题目描述: 给你一个没有重复元素的数组,和一个target目标值,返回数组中可以使数字和为目标数target的所有不同组合.什么叫组合?组合就是数组中任意数字组成的集合,不需要 ...

  6. 二阶段目标检测网络-FPN 详解

    论文背景 引言(Introduction) 特征金字塔网络 FPN FPN网络建立 Anchor锚框生成规则 实验 代码解读 参考资料 本篇文章是论文阅读笔记和网络理解心得总结而来,部分资料和图参考论 ...

  7. 使用xshell连接linux虚拟机

    目录 1.涉及的软件 2.连接步骤 2.1.虚拟机网络连接设置 2.2.配置linux的ip地址 2.3.关闭linux的防火墙 2.4.启动ssh服务 2.5.使用xshell连接linux 1.涉 ...

  8. 第六节 FAF与GP不工作保护区的绘制

    飞行程序设计软件实践 前一篇文章中,通过风标设计2023插件,我们在CAD中绘制了FAP方式下的精密进近保护区. 接着这个话题我们继续来看一下FAF方式下的保护区应该怎样绘制,以及OAS参数的其它用法 ...

  9. mysql 复制数据

    1.表存在 insert into table_name(key1,key2) select key3,key4 from table_name_2; 2.表不存在 create table test ...

  10. Mybatis用List接收返回值

    Mybatis 用 List 接收返回值 以 List<Map<String, Object>> 为例 1.XML内 resultType 为单条记录对应类型,设置成 java ...