NPOI 2.3
样例
//设置员工编号单元格为文本格式 循环效率问题?
IDataFormat dataformat = workbook.CreateDataFormat();
ICellStyle style1 = workbook.CreateCellStyle();
IDataFormat format = workbook.CreateDataFormat();
style1.DataFormat = dataformat.GetFormat("text");
for (int i = ; i < gowthValue.LastRow; i++)
{
NPOI.SS.UserModel.IRow rowID = sheet1.CreateRow(i);
ICell cell1 = rowID.CreateCell();
cell1.CellStyle = style1;
}
//设置员工编号单元格为文本格式
IDataFormat dataformat = workbook.CreateDataFormat();
ICellStyle style1 = workbook.CreateCellStyle();
IDataFormat format = workbook.CreateDataFormat();
style1.DataFormat = dataformat.GetFormat("text");
sheet1.SetDefaultColumnStyle(, style1);
/// <summary>
/// 下载导入数据地图模板
/// </summary>
/// <returns></returns>
[HttpGet]
public FileResult DownloadMapTemplate()
{
NpoiMemoryStream memory = new NpoiMemoryStream();
IWorkbook workbook = new XSSFWorkbook();
ISheet sheet=workbook.CreateSheet("导入地图数据模板");
IRow row = sheet.CreateRow();
row.CreateCell().SetCellValue("项目名称");
row.CreateCell().SetCellValue("地图名称");
row.CreateCell().SetCellValue("地图类型");
row.CreateCell().SetCellValue("经纬度");
ISheet sheet1 = workbook.GetSheetAt();//获得第一个工作表
CellRangeAddressList regions = new CellRangeAddressList(, , , );//约束范围:c2到c65535
XSSFDataValidationHelper helper = new XSSFDataValidationHelper((XSSFSheet)sheet1);//获得一个数据验证Helper
IDataValidation validation = helper.CreateValidation(helper.CreateExplicitListConstraint(new string[]{"项目","标段","桥梁","隧道"}), regions);//创建约束
validation.CreateErrorBox("错误", "请按右侧下拉箭头选择!");//不符合约束时的提示
validation.ShowErrorBox = true;//显示上面提示 = True
sheet1.AddValidationData(validation);//添加进去
sheet1.ForceFormulaRecalculation = true; memory.AllowClose = false;
workbook.Write(memory);
memory.Flush();
memory.Position = ; // 指定内存流起始值 return File(memory, "application/vnd.ms-excel","地图模板下载.xlsx");
}
实战代码
public FileResult DownloadExcel()
{
//获得配置信息
Models.GrowthValueExcel gowthValue = Common.GrowthValueConfHelper.GetGrowthValueExcel(); //创建XSSFWorkbook->CreateSheet
NPOI.XSSF.UserModel.XSSFWorkbook workbook = new NPOI.XSSF.UserModel.XSSFWorkbook();
NPOI.SS.UserModel.ISheet sheet1 = workbook.CreateSheet(gowthValue.Title); //指定列宽度
sheet1.SetColumnWidth(, * );
sheet1.SetColumnWidth(, * ); //设置员工编号单元格为文本格式
IDataFormat dataformat = workbook.CreateDataFormat();
ICellStyle style1 = workbook.CreateCellStyle();
style1.DataFormat = dataformat.GetFormat("text");
sheet1.SetDefaultColumnStyle(, style1); //给sheet1添加第一行的头部标题
NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow();
row1.CreateCell().SetCellValue(gowthValue.Name); //设置员工编号单元格为文本格式
row1.CreateCell().SetCellValue(gowthValue.UserCode);
row1.CreateCell().SetCellValue(gowthValue.MedalName);
row1.CreateCell().SetCellValue(gowthValue.ScoreReason);
row1.CreateCell().SetCellValue(gowthValue.Score);
row1.CreateCell().SetCellValue(gowthValue.Time); //得分项下拉列表
CellRangeAddressList regions = new CellRangeAddressList(, gowthValue.LastRow, , );//约束范围:c2到c65535
XSSFDataValidationHelper helper = new XSSFDataValidationHelper((XSSFSheet)sheet1);//获得一个数据验证Helper
Dictionary<string, int> MedalDic = Bll.MedalCaChe.GetMedalFromDictionary();
IDataValidation validation = helper.CreateValidation(helper.CreateExplicitListConstraint(MedalDic.Keys.ToArray()), regions);//创建约束
validation.CreateErrorBox("错误", "请按右侧下拉箭头选择!");//不符合约束时的提示
validation.ShowErrorBox = true;//显示上面提示 = True
sheet1.AddValidationData(validation);//添加进去
sheet1.ForceFormulaRecalculation = true; //通过内存流下载
NpoiMemoryStream memory = new NpoiMemoryStream();
memory.AllowClose = false;
workbook.Write(memory);
memory.Flush();
memory.Position = ;
return File(memory, "application/vnd.ms-excel", $"{gowthValue.Title}.xlsx");
}
NPOI 2.3的更多相关文章
- .NET Core 首例 Office 开源跨平台组件(NPOI Core)
前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...
- 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)
很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI. NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel ...
- C#通过NPOI操作Excel
参考页面: http://www.yuanjiaocheng.net/webapi/create-crud-api-1-post.html http://www.yuanjiaocheng.net/w ...
- 基于NPOI的Excel数据导入
从Excel导入数据最令人头疼的是数据格式的兼容性,特别是日期类型的兼容性.为了能够无脑导入日期,折腾了一天的NPOI.在经过测试确实可以导入任意格式的合法日期后,写下这篇小文,与大家共享.完整代码请 ...
- NPOI导出Excel
using System;using System.Collections.Generic;using System.Linq;using System.Text;#region NPOIusing ...
- 通过NPOI操作Excel
最近在做的一个项目中需要生成Excel,通过学习使用NPOI实现了相关需求,写了一个简便操作的类,记录如下: public class NPOIHelperForExcel { #region exc ...
- .Net开源Excel、Word操作组件-NPOI、EPPlus、DocX
一.NPOI 简介: NPOI is the .NET version of POI Java project. With NPOI, you can read/write Office 2003/2 ...
- 转载 NPOI Excel 单元格背景颜色对照表
NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillP ...
- 转载 NPOI.dll 用法。单元格,样式,字体,颜色,行高,宽度。读写excel
我用的版本是1.25的.每个版本用法有一点不同 using System; using System.Collections.Generic; using System.ComponentModel; ...
- NPOI操作EXCEL(六)——矩阵类表头EXCEL模板的解析
哈哈~~~很高兴还活着.总算加班加点的把最后一类EXCEL模板的解析做完了... 前面几篇文章介绍了博主最近项目中对于复杂excel表头的解析,写得不好,感谢园友们的支持~~~ 今天再简单讲诉一下另一 ...
随机推荐
- DVWA的安装与简单使用
参考资料: http://www.freebuf.com/articles/web/119150.html 尝试使用linux机器安装,但是因为下载php版本以及各种兼容性的问题耗时较长, 所以后来选 ...
- pandas shift
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/5/24 15:03 # @Author : zhang chao # @Fi ...
- 学习记录特别篇之sql,类的继承
思路: 应用场景: 1.将父类当做一个基础类 大家都去继承该方法,以便少些代码 2.继承父类的方法 同时可以重写该方法时候调用父类原先的方法 实现一石二鸟的效果 即 既增加原先的功能 又新增新的功能 ...
- 洛谷P3066 [USACO12DEC]逃跑的BarnRunning Away From…
题面链接 一句话题意:给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于等于l的点有多少个. 我:似乎并不好做啊...看了题解后大雾... sol:考虑树上差分,对于一个点,在他那个位置++, ...
- 牛客国庆集训派对Day2 H 期望
小贝喜欢玩卡牌游戏.某个游戏体系中共有N种卡牌,其中M种是稀有的.小贝每次和电脑对决获胜之后都会有一个抽卡机会,这时系统会随机从N种卡中选择一张给小贝.普通卡可能多次出现,而稀有卡牌不会被重复抽到.小 ...
- Java新AIO/NIO2:AsynchronousServerSocketChannel和AsynchronousSocketChannel简单服务器-客户端
Java新AIO/NIO2:AsynchronousServerSocketChannel和AsynchronousSocketChannel简单服务器-客户端用AsynchronousServerS ...
- 树莓派上使用mdk3对无线热点进行DoS攻击
写在前面 你必须确保你的无线网卡支持监听模式(混淆模式),树莓派板载的无限网卡是不支持的.所以你必须额外安装一个支持监听模式的USB无线网卡. 安装mdk3 安装sudo apt install md ...
- HDU 3416 Marriage Match IV (最短路径,网络流,最大流)
HDU 3416 Marriage Match IV (最短路径,网络流,最大流) Description Do not sincere non-interference. Like that sho ...
- (转)JVM——Java虚拟机架构
背景:最近开始忙着找工作了,把需要储备的知识再整理总结一遍!关于JVM的总结,是转自下面的连接.结合<深入理解java虚拟机>,看起来有更清晰的认识. 转载自:http://blog.cs ...
- Python基础学习(四)
菜鸟咀嚼python基础之继续. 一.返回函数 第三章已经简单操作了Python的高阶函数,目前继续练手函数作为返回值的特效:通常,高阶函数除了可以接收函数作为参数外,还可以把函数作为结果值返回. 案 ...