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表头的解析,写得不好,感谢园友们的支持~~~ 今天再简单讲诉一下另一 ...
随机推荐
- ViewDragHelper
参考:Android 之 ViewDragHelper 详解 Android 之 ViewDragHelper详解(二) 看了几篇博客,并参考了上面的两篇博客,整理一下ViewDragHelper ...
- mongoose 入门基本操作
简介 Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具 那么要使用它,首先你得装上node.js和mongodb,关于mongodb的安装和操作介绍可以参考:ht ...
- 暂时刷完leetcode的一点小体会
两年前,在实习生笔试的时候,笔试百度,对试卷上很多问题感到不知所云,毫无悬念的挂了 读研两年,今年代笔百度,发现算法题都见过,或者有思路,但一时之间居然都想不到很好的解法,而且很少手写思路,手写代码, ...
- ceph PG数量调整/PG的状态说明
优化: PG Number PG和PGP数量一定要根据OSD的数量进行调整,计算公式如下,但是最后算出的结果一定要接近或者等于一个2的指数.调整PGP不会引起PG内的对象的分裂,但是会引起PG的分布的 ...
- BZOJ1001[BeiJing2006]狼抓兔子——最小割
题目描述 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: ...
- importlib 模块
根据字符串的模块名实现动态导入模块的库 目录结构 ├── aaa.py ├── bbb.py └── mypackage ├── __init__.py └── xxx.py bbb.py impor ...
- day11 匿名函数
格式 lambda 形参 :逻辑运算方式 lambda x:x+1 普通的方式计算 卧槽.这么长! def calc(x): return x+1 res = calc(10) print(res) ...
- MT【69】斯图姆定理
评:如果说零点存在定理是"只在此山中,云深不知处"的意境.那么斯图姆定理就能处理多项式的零点个数以及定位.
- hihoCoder#1743:K-偏差排列(矩阵快速幂+状压dp)
题意 如果一个 \(1\to N\) 的排列 \(P=[P_1, P_2, ... P_N]\) 中的任意元素 \(P_i\) 都满足 \(|P_i-i| ≤ K\) ,我们就称 \(P\) 是 \( ...
- 自学Linux Shell12.2-test命令
点击返回 自学Linux命令行与Shell脚本之路 12.2-test命令 if-then语句不能测试命令退出状态码之外的条件,test命令提供了在if-then语句中测试不同条件的途径. 如果tes ...