代码包括:

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. html让元素纵向排列,html – 如何使元素排列到父元素的外边缘
  2. SQL的四种连接-左外连接、右外连接、内连接、全连接
  3. wordpress博客留言自动填写
  4. Java Web Token - JWT
  5. Java Vector insertElementAt()方法与示例
  6. 亚洲人跑进百米决赛,到底有多难?
  7. 一本通1596动物园
  8. View的复用:viewHolder
  9. wingdings字体符号在哪_Wingdings特殊字符及符號對照表 | 學步園
  10. 小米路由器3 刷 linux,小米路由器3刷入LEDE
  11. 一些js和jquery操作功能
  12. android报错:TextView.setText(java.lang.CharSequence)on a null object reference
  13. 亚运赛场阿联酋公主亲自上阵 爱骑超千万
  14. 【服务器数据恢复】断电导致存储raid6阵列瘫痪的数据恢复案例
  15. 软件开发基于JavaScript实现快速转换文本语言
  16. 原创如何批量修改文件名称,合并ts文件片段
  17. Thingsboard 2.5 版本发布
  18. 计算机语言中call,雅马哈编程语言CALL的作用
  19. Unittest自动化测试框架教程(四)——Python中的数据驱动测试DDT
  20. qt 加载winPcap库

热门文章

  1. WWDC2019:离开手机,苹果靠什么“挽尊”
  2. Non-Interactive Guessing Number
  3. 电视上玩android游戏,如何用u盘下载游戏在android系统电视上玩?
  4. expresscache和primocache加速资料整理
  5. 微信小程序 | 一键生成万圣节头像框工具
  6. Markdown(1):markdown设置标题、代码、图片、链接、标题、配置vscode插件
  7. C++用桌面图标系列之三【整理-时钟】
  8. 创建 Time Machine 时间机器的备份至 openmediavault 5(OMV 5) NAS 的 SMB/CIFS 共享文件夹
  9. 猪猪的机器学习笔记(一)微积分和概率论
  10. 东南大学2012年招收推荐免试生直接攻读博士学位研究生简章