.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 ...
随机推荐
- C++编程笔记(GPU并行编程-2)
C++与CUDA 内存管理 封装 利用标准库容器实现对GPU的内存管理 #include <iostream> #include <cuda_runtime.h> #inclu ...
- #define 的神奇操作
# define 的神奇操作 一.宏定义中的 #.## 符号的神奇用法 1.1 # 的用法 1.1.1 作用 #表示字符串化操作符(stringification),其作用是将宏定义中的传入参数名转换 ...
- JS中BOM与DOM操作
BOM操作 window对象 是与浏览器窗口做交互的语言 BOM = Browser Object Model 是指浏览器对象模型,它可以使Javascript 有能力和浏览器进行对话 window. ...
- Qt的进程间通信,以服务器的形式,手把手教你VS上进行Qt的COM、ActivedQt Server的开发,比保姆还保姆(一)
Qt的进程间通信,以Active服务器的形式,手把手教你VS上进行Qt的COM.ActivedQt Server的开发,比保姆还保姆 写在前面,文中的ID有部分对不上,因为我中途改了一下,我建议你在实 ...
- STM32点亮LED的代码
led.c #include "led.h" void LED_Config(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2P ...
- $_GET方法踩坑
背景 写代码时,遇到一个奇怪的问题:小程序卡券解码接口老是报解码失败,苦寻了一个小时,发现原来是url参数经过thinkphp的I方法被过滤掉,而且涉及到PHP原生的$_GET 原因 I方法底层是原生 ...
- 温故知新 - 靶机练习-Toppo
今天闲来无事,重新做了一下以前做过的第一个靶机(https://www.cnblogs.com/sallyzhang/p/12792042.html),这个靶机主要是练习sudo提权,当时不会也没理解 ...
- Spring Boot通过Actuator显示git和build的信息
1 简介 为了更好的版本控制和问题定位,我们需要知道正在运行的应用是什么版本,什么时候打包的,Git的相关信息等.通过/actuator/info可以帮助我们获取这些信息. 2 配置 首先要有actu ...
- P8701 [蓝桥杯 2019 国 B] 第八大奇迹
简要题意 你需要维护一个长度为 \(L\) 的序列 \(a\),初始时全部都是 \(0\),有 \(N\) 个操作,支持: C p x,将 \(a_p\) 修改为 \(x\). Q a b,输出 \( ...
- P8844 [传智杯 #4 初赛] 小卡与落叶
简要题意 给出一个 \(n\) 个节点的以 \(1\) 为根的树,每一个节点 \(i\) 带权 \(w_i\),初始时所有节点的权均为 \(0\).有 \(m\) 个操作,支持以下操作: 1 x,对于 ...