代码包括:

1:导出多个sheet    2:设置单元格格式   3:合并单元格   4:下拉框选项   5:输入数字限制   6:锁定单元格

 static void Main(string[] args){//hssf表示2003   xssf表示2007  两者之间有的功能是一样的,比如设置列宽,锁定单元格//有的功能是不一样的,具体情况具体对待//实例化一个操作excel工作薄的对象IWorkbook workbook = new HSSFWorkbook();//创建表ISheet sheet1 = workbook.CreateSheet("sheet1");//创建行(一行一行的创建,参数代表第几行,不能相同,会覆盖)IRow row1 = sheet1.CreateRow(0);//创建单元格(一个一个的创建,参数代表第几个,不能相同,会覆盖)ICell cell1 = row1.CreateCell(0);//设置值cell1.SetCellValue("大家好");//设置格式ICell cell2 = row1.CreateCell(1);cell1.SetCellValue("hahah");SetCellStyle((HSSFWorkbook)workbook, cell1);//合并单元格MergeCell(sheet1, 0, 0, 1, 4);sheet1.SetColumnWidth(0, 20 * 256);sheet1.SetColumnWidth(1, 25 * 256);//创建另一个sheetISheet sheet2 = workbook.CreateSheet("sheet2");SetCellDropdownlist(sheet2);//下拉列表SetCellInputNumber(sheet2);//只能输入数字//锁定sheetISheet sheet3 = workbook.CreateSheet("sheet3");//设置密码,锁定表(只要设定就会锁定整个sheet)sheet3.ProtectSheet("123456");IRow row3 = sheet3.CreateRow(0);ICell c1 = row3.CreateCell(0);ICell c2 = row3.CreateCell(1);//不锁定HSSFCellStyle unlocked = (HSSFCellStyle)workbook.CreateCellStyle();unlocked.IsLocked = false;//锁定HSSFCellStyle locked = (HSSFCellStyle)workbook.CreateCellStyle();locked.IsLocked = true;c1.SetCellValue("未锁定");c1.CellStyle = unlocked;//其实这个设置不设置都一样的,只要加密就是锁定整个sheetc2.SetCellValue("锁定");c2.CellStyle = locked;using (Stream stream = File.OpenWrite(@"D:\test2.xls")){//进行保存workbook.Write(stream);}Console.WriteLine("成功");Console.ReadKey();}/// <summary>/// 设置单元格为下拉框并限制输入值/// </summary>/// <param name="sheet"></param>private static void SetCellDropdownlist(ISheet sheet){//设置生成下拉框的行和列(开始行,结束行,开始列,结束列)var cellRegions = new CellRangeAddressList(0, 20, 0, 0);//设置 下拉框内容DVConstraint constraint = DVConstraint.CreateExplicitListConstraint(new string[] { "itemA", "itemB", "itemC" });//绑定下拉框和作用区域,并设置错误提示信息HSSFDataValidation dataValidate = new HSSFDataValidation(cellRegions, constraint);dataValidate.CreateErrorBox("输入不合法", "请输入下拉列表中的值。");dataValidate.ShowPromptBox = true;sheet.AddValidationData(dataValidate);}/// <summary>/// 设置单元格只能输入数字/// </summary>/// <param name="sheet"></param>private static void SetCellInputNumber(ISheet sheet){//设置生成下拉框的行和列var cellRegions = new CellRangeAddressList(0, 10, 1, 1);//第二个参数int comparisonOperator  参考源码获取//https://github.com/tonyqus/npoi//NPOITest项目DVConstraint constraint = DVConstraint.CreateNumericConstraint(ValidationType.INTEGER, OperatorType.BETWEEN, "0", "10");HSSFDataValidation dataValidate = new HSSFDataValidation(cellRegions, constraint);dataValidate.CreateErrorBox("输入不合法", "请输入1~10的数字。");//dataValidate.PromptBoxTitle = "ErrorInput";sheet.AddValidationData(dataValidate);}/// <summary>/// 合并单元格/// </summary>/// <param name="sheet"></param>/// <param name="firstRow"></param>/// <param name="lastRow"></param>/// <param name="firstCell"></param>/// <param name="lastCell"></param>private static void MergeCell(ISheet sheet, int firstRow, int lastRow, int firstCell, int lastCell){sheet.AddMergedRegion(new CellRangeAddress(firstRow, lastRow, firstCell, lastCell));//2.0使用 2.0以下为Region}/// <summary>/// 设置单元格样式/// </summary>/// <param name="workbook"></param>/// <param name="cell"></param>private static void SetCellStyle(HSSFWorkbook workbook, ICell cell){HSSFCellStyle fCellStyle = (HSSFCellStyle)workbook.CreateCellStyle();HSSFFont ffont = (HSSFFont)workbook.CreateFont();ffont.FontHeight = 20 * 20;ffont.FontName = "宋体";ffont.Color = HSSFColor.RED.index;//2007中直接设置就好//ffont.Color = 2;fCellStyle.SetFont(ffont);fCellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER;//垂直对齐fCellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;//水平对齐cell.CellStyle = fCellStyle;}

参考

http://www.docin.com/p-1151996737.html?qq-pf-to=pcqq.c2c
http://www.cnblogs.com/gossip/p/4307486.html

转载于:https://www.cnblogs.com/zxking/p/6250421.html

NPOI导出数据,设置格式,锁定单元格相关推荐

  1. easyExcel导入导出(列锁定单元格、表头合并、导出类型限制、锁定单元格增加底色、设置密码、隐藏列等)

    easyexcel官网文档:https://www.yuque.com/easyexcel/doc/easyexcel easyexcel {maven 版本} GitHub网址:https://gi ...

  2. EasyExcel导出数据多行合并单元格

    文章目录 前言 一.话不多说上代码 2.导出使用 3.导出效果如下 总结 前言 记录使用EasyExcel导出Excel合并多行数据 一.话不多说上代码 代码如下:这是比较初始版本的.没做优化,如有大 ...

  3. excel锁定单元格不能修改_【软件应用】工程中经常运用的Excel技巧(附教程下载)...

    点击上面"蓝字"关注我们!              路桥隧施工测量实战技能培训 授课时间:11月27日-12月17日(第一期)                  12月23日-1 ...

  4. html表格自动变色,如何设置实现Excel单元格自动变色?动图演示更详细

    同事发来了一份Excel表格文件,让你将单元格中的特殊数据进行颜色标注,面对一长串的数据,如果没有快捷技巧,你是否感觉力不从心?今天小编就来支招,给大家介绍一个方法,可以让单元格自动"变色& ...

  5. POI导出支持合并表头及单元格锁定的Excel

    1.开发前提 目前项目上有这样的需求,支持Excel导出后再线下调至后导入,并且有关键字及其他部分字段不支持修改,所以需要写保护,按正常的理解来讲锁定特定的列即可,但是需求中需要在Excel中添加行数 ...

  6. 填报表导出excel非可写单元格锁定问题

     问题描述: 填报表单元格分为可写和不可写两种状态,当填报表在web上展现的时候可写单元格可以进行数据填报和修改,非可写单元格不可操作. 报表导出为excel时,润乾导出excel包默认情况下不对 ...

  7. 如何才能通过设置将excel单元格内的14位数字转换为日期格式

    如何才能通过设置将excel单元格内的14位数字转换为日期格式 (如20200226230300转换为2010-06-02-10-46-36) ? 自定义格式 0000-00-00-00-00-00 ...

  8. excel锁定单元格不能修改_Excel如何保护特定的数据不被更改?

    EXCEL如何保护一些数据,防止被更改呢?下图中A列即为不能更改的区域. 第一步:先选中整个工作表 第二步:右键-设置单元格格式-保护-不勾选锁定 第三步:选中需要保护的区域 第四步:右键-设置单元格 ...

  9. excel锁定单元格不能修改_EXCEL/WPS如何保护特定的数据不被更改?

    因为界面及使用方法类似,本文使用WPS进行说明. EXCEL如何保护一些数据,防止被更改呢?下图中A列即为不能更改的区域. 第一步:先选中整个工作表 第二步:右键-设置单元格格式-保护-不勾选锁定 第 ...

最新文章

  1. 各大网站屏蔽搜索引擎抓取分析
  2. java 返回double数组_java-如何使用Collectors.averagingDouble计算双精度数组的均值?
  3. “不传递消息、不使用邻接矩阵、在边集上训练”: 从对比链接中蒸馏自知识:非消息传递的图节点分类...
  4. tcpdump 抓取icmp数据包
  5. c:if判断参数是否为空
  6. linux搜索文件内容含有星号,文本内容查找grep、文件查找find、正则匹配
  7. flowable实现流程回退功能
  8. JAVA知识基础(一):数据类型
  9. 【spring】【转】Spring 框架的设计理念与设计模式分析
  10. Drawable之color示例
  11. 《网络攻防第六周作业》
  12. H3C无线 AC旁挂式部署无线开局(WEB版)
  13. 模块化机房建设指导书_模块化机房建设方案
  14. window10运行不了1stopt_软件与win10不兼容怎么办?完美解决Win10与软件不兼容的问题...
  15. IDEA怎么查看现在的项目使用的JDK版本? 2016年4月19日22:51
  16. kali虚拟机VMBox安装
  17. easyui ValidateBox validType验证规则
  18. 一着不慎被蛇咬,最近半月终出坑
  19. plsr matlab,matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)
  20. 基于MATLAB BP神经网络的水果识别

热门文章

  1. 摄氏度和华氏度的换算
  2. java 多个PDF合成一个
  3. PHP微信开发素材管理,PHP微信开发包,微信开发SDK
  4. Power BI项目之某公司内部数据分析
  5. Baxer双臂机器人Ubuntu20.04+ROS noetic开发环境配置
  6. 张孝祥正在整理Java就业面试题大全20100602版本(一)
  7. 微信小程序 navigator 导航
  8. html导航页面滚动,可通过导航视图精确滚动页面内容的js插件
  9. 泛型中extends和super的区别
  10. 甲骨文大数据利器:内存数据库和一体机