最近因项目接触了NPOI,感觉还是蛮不错的,网络上的教程普遍版本较老,本篇记录所常用操作,采用NPOI 2.0版本。

推荐:

新建Excel

HSSFWorkbook hssfworkbook =newHSSFWorkbook();
ISheet sheet1 = hssfworkbook.CreateSheet("sheet1");//建立Sheet1
保存(导出)Excel
FileStream file =newFileStream(@"e:\HSSFWorkbook.xls",FileMode.Create);
hssfworkbook.Write(file);
file.Close();
导入Excel
FileStream file =newFileStream(@"template/Template.xls",FileMode.Open,FileAccess.Read);
hssfworkbook =newHSSFWorkbook(file);
添加文字
ICell cell1 =HSSFCellUtil.CreateCell(sheet1.CreateRow(0),0,"A1");//添加A1到A1单元,并对Row0实例化
ICell cell2 = HSSFCellUtil.CreateCell(sheet1.GetRow(0), 1, " B1 ");//添加B1到B1单元,此方法需Row0实例化后才可使用
sheet1.GetRow(0).CreateCell(2).SetCellValue("C1");//添加C1到C1单元,此方法需Row0实例化才可使用
sheet1.CreateRow(1).CreateCell(0).SetCellValue("A2");//添加A2到A2单元,并对Row1实例化
 
注意添加文字时候对单元格实例化问题,如果在同一单元格,多次实例化后,会覆盖同行的文字。提供了两种添加文字方式,各有优缺点吧。
设置字体格式
IFont font1 = hssfworkbook.CreateFont();
font1.FontName="宋体";//字体
font1.FontHeightInPoints = 20;//字号
font1.Color = HSSFColor.RED.index;//颜色
font1.Boldweight = 700;//粗体
font1.IsItalic = true;//斜体
font1.Underline = (byte)FontUnderlineType.DOUBLE;//添加双下划线
 
ICellStyle style1 = hssfworkbook.CreateCellStyle();
style1.SetFont(font1);
字体格式绑定在Style中,Style包含了字体格式、颜色、边框等设置,当设置好Style后,赋值给单元格即可。
 
cell1.CellStyle= style1;
sheet1.GetRow(1).GetCell(0).CellStyle= style1;

合并单元格

sheet1.AddMergedRegion(newCellRangeAddress(2,3,0,1));//合并A3-B4

//CellRangeAddress(起始行,终止行,起始列,终止列);

添加边框

ICellStyle style2 = hssfworkbook.CreateCellStyle(); style2.BorderBottom= NPOI.SS.UserModel.BorderStyle.THIN; style2.BorderLeft= NPOI.SS.UserModel.BorderStyle.THIN;style2.BorderRight= NPOI.SS.UserModel.BorderStyle.THIN; style2.BorderTop= NPOI.SS.UserModel.BorderStyle.THIN;

//添加斜线

style2.BorderDiagonal = BorderDiagonal.BACKWARD; style2.BorderDiagonalLineStyle= NPOI.SS.UserModel.BorderStyle.THIN;
cell2.CellStyle= style2;

添加边框要对上下左右边框都进行描述。

设置对齐相关设置

ICellStyle style3 = hssfworkbook.CreateCellStyle(); style3.Alignment= NPOI.SS.UserModel.HorizontalAlignment.CENTER;//居中style3.VerticalAlignment=VerticalAlignment.CENTER;//垂直居中 style3.WrapText=true;//自动换行

sheet1.GetRow(0).GetCell(2).CellStyle= style3;

转载自:http://anchises.blog.163.com/blog/static/6432108220129211423620/

最新文章

  1. python——django的post请求
  2. Rubinius 2.0 发布,Ruby 虚拟机
  3. JQuery Object vs. DOM element
  4. js获取gridview模板列中textbox行列的值
  5. 由于 add 运算符中“Chinese_PRC_CI_AS”和“Chinese_PRC_CS_AS_WS”之间的排序规则冲突
  6. 【转发】CentOS 7 巨大变动之 systemd 取代 SysV的Init
  7. Python 手册——解释器及其环境
  8. Linux内核实现多路镜像流量聚合和复制
  9. python cmd 模块
  10. XMLHttpRequest API 使用指南
  11. JDBC 数据库连接操作——实习第三天
  12. 统计每日单量MySQL语句
  13. JVM高手之路七(tomcat调优以及tomcat7、8性能对比)
  14. tornado项目注意点
  15. C#模拟PrtScn实现截屏
  16. js弹出window.open窗口
  17. Linux远程连接Windows桌面
  18. hibernate、mybatis、spring data 的对比
  19. 兼容获取元素当前样式 currentStyle || getComputedStyle
  20. P4592 [TJOI2018]异或 (可持久化Trie)

热门文章

  1. 如何获取 docker 容器(container)的 ip 地址
  2. 拟物设计和Angular的实现 - Material Design
  3. Asp.Net MVC记住用户登录信息 下次登录无需输入密码
  4. 【转】PowerDesigner删除外键关系,而不删除外键列
  5. 【BZOJ3555】 [Ctsc2014]企鹅QQ
  6. 【问题解决方案】Keras手写数字识别-ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接
  7. 【Spark基础】:RDD
  8. VS2013 编辑器
  9. flask框架--cookie,session
  10. MYSQL基础语法的使用