.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 ...
随机推荐
- Promise基础知识
Promise 1.Promise的前置小知识 进程(厂房) 程序的运行环境 线程(工人) 线程是实际进行运算的东西 同步 通常情况代码都是自上向下一行一行执行的 前边的代码不执行后边的代码也不会执行 ...
- npm设置
1.默认安装完node.js后会自己安装npm,通过npm下载全局模块默认安装到C:\Users\wangyc\AppData\Roaming目录下,主要有两个文件夹:npm.npm-cache 2. ...
- Python报SyntaxError: Missing parentheses in call to ‘print’. Did you mean print()
SyntaxError: Missing parentheses in call to 'print'. Did you mean print()原因:python2.X版本与python3.X版本输 ...
- docker 第一课
centos安装docker yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ...
- C语言读写txt文件
写入和读取txt文件 #include<stdio.h> #include<string.h> int main( int argc, char *argv[] ) { int ...
- Python实验报告(第9章)
实验9:异常处理及程序调试 一.实验目的和要求 1.了解代码异常知识: 2.掌握异常处理的try-except语句.try-except-else语句.try-except-finally语句.rai ...
- Centos下部署最后一版支持Docker的k8s集群
部署版本 首先要确定部署的版本 查询Kubernetes对Docker支持的情况 kubernetes/dependencies.yaml at master · kubernetes/kuberne ...
- [编程基础] Python数据生成库Faker总结
Python Faker教程展示了如何使用Faker软件包在Python中生成伪数据.我们使用joke2k/faker包. 1 介绍 Faker是一个生成假数据的Python库.伪数据通常用于测试或用 ...
- mysql 1366 - Incorrect string value
mysql 插入中文时报错 mysql 1366 - Incorrect string value... 这是由于 数据库 / 表 / 表字段 编码格式未设置好造成的 解决办法: 1.查看编码是否符 ...
- 【Java复健指南15】链表LinkedList及其说明
链表LinkedList by Java 之前有写过一些记录(引用),但是忘了乱了,现在重新梳理一遍 链表是Java中List接口的一种实现 定义(引用) 链表(linked list)是一种物理存储 ...