.Net NPOI 简单Demo,一看就会
#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,一看就会的更多相关文章
- angular实现了一个简单demo,angular-weibo-favorites
前面必须说一段 帮客户做了一个过渡期的项目,唯一的要求就是速度,我只是会点儿基础的php,于是就用tp帮客户做了这个项目.最近和客户架构沟通,后期想把项目重新做一下,就用现在最流行的技术,暂时想的使用 ...
- [tornado]websocket 最简单demo
想法 前两天想看看django 长轮询或者是websocket的方案,发现都不太好使. tornado很适合做这个工作,于是找了些资料,参照了做了个最简单demo,以便备用. 具体的概念就不说了,to ...
- 服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)
[前言] Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butt ...
- WPF实现主题更换的简单DEMO
WPF实现主题更换的简单DEMO 实现主题更换功能主要是三个知识点: 动态资源 ( DynamicResource ) INotifyPropertyChanged 接口 界面元素与数据模型的绑定 ( ...
- PHP多进程学习(一)__来初步了解一下PHP多进程及简单demo
php是一门单进程弱类型的语言,PHP处理多并发主要是依赖服务器或PHP-FPM的多进程及它们进程的复用,多进程的作用优点大家可以去网上了解,PHP实现多进程在实际项目中意义也是不容小觑的.比如:日常 ...
- 设计模式之单例模式的简单demo
/* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...
- Spring的简单demo
---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...
- 使用Spring缓存的简单Demo
使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...
- Managed DirectX中的DirectShow应用(简单Demo及源码)
阅读目录 介绍 准备工作 环境搭建 简单Demo 显示效果 其他 Demo下载 介绍 DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染.交互式音乐和 ...
- Solr配置与简单Demo[转]
Solr配置与简单Demo 简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目.它的官方网址在http://lucene.apache.org/sol ...
随机推荐
- PHP-表单传值
一.传值引入 了解传值必须要先知道为什么需要传值? 传值的主要作用是为了实现用户数据的定制化,用户与服务端的互交 二.传值的方式 虽然 http协议中有很多数据传输的方式,但在PHP中只有 POST ...
- 《HTTP权威指南》– 7.缓存
Web缓存的概念 Web缓存是可以自动保存常见文档副本的HTTP设备. 使用缓存的优点: 减少了数据的数据传输,节省了网络费用: 缓解了网络瓶颈的问题,不需要更多的带宽就能更快地加载页面: 降低了原始 ...
- Django框架F查询与Q查询(全面了解)
一:F与Q查询 1.F查询的作用 能够帮助你直接获取到列表中某个字段对应的数据 注意: 在操作字符串类型的数据的时候, F不能够直接做到字符串的拼接 2.查询卖出书大于库存数的书籍 # 导入F查询 f ...
- 10、比较Bigdecimal类型是否相等的方法
一.Bigdecimal.equals()详解: Bigdecimal的equals方法不仅仅比较值的大小是否相等,首先比较的是scale(scale是bigdecimal的保留小数点位数),也就是说 ...
- Python实验报告(第2章)
实验2:Python语言基础 一.实验目的和要求 1.了解Python的编写规范要求: 2.了解Python的基本数据类型: 3.学会使用Python的五种运算符: 4.掌握Python的基本输入和输 ...
- .Net引用根目录子文件夹下的dll文件
在.Net开发的时候,有时候会引用一套库,这些库是由多个dll文件.正常情况下,这些dll文件需要拷贝到运行根目录下.如果这些dll文件比较多,加上其他直接引用的dll,这样会导致根目录下非常乱.我们 ...
- Python网络爬虫get方法出现乱码的解决的三种方案
给大家祭出网络爬虫过程中三种中文乱码的处理方案,希望对大家的学习有所帮助. 方案一 将requests.get().text改为requests.get().content 我们可以看到通过text( ...
- [深度探索C++对象模型]trival constructor和non-trival constructor
分清楚user-declared constructor和implict default constructor 首先要知道,如果你没有自定义一个类的构造函数,那么编译器会在暗中声明一个构造器,这个构 ...
- Java解题练习
Java解题练习 1.A+B问题 解题代码: import java.util.*; public class Main { public static void main(String[] ar ...
- C#11新特性整理
假期中有时间,整理了C#11的各个新特性,简单分享给大家. 一.使用VSCode新建一个.NET7.0的Console工程 <Project Sdk="Microsoft.NET.Sd ...