最近因项目接触了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/

【转】.NET NPOI操作Excel常用函数的更多相关文章

  1. NPOI操作Excel常用函数

    最近因项目接触了NPOI,感觉还是蛮不错的,网络上的教程普遍版本较老,本篇记录所常用操作,采用NPOI 2.0版本. 推荐: NPOI官方网站 NPOI 1.2.4/1.2.5 官方教程 新建Exce ...

  2. C#开发中使用Npoi操作excel实例代码

    C#开发中使用Npoi操作excel实例代码 出处:西西整理 作者:西西 日期:2012/11/16 9:35:50 [大 中 小] 评论: 0 | 我要发表看法 Npoi 是什么? 1.整个Exce ...

  3. 用NPOI操作EXCEL关于HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)的参数

    2.4.1 用NPOI操作EXCEL关于HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)的参数   NPOI教程:http://www.cnb ...

  4. 使用NPOI操作Excel文件及其日期处理

    工作中经常遇到需要读取或导出Excel文件的情况,而NPOI是目前最宜用.效率最高的操作的Office(不只是Excel哟)文件的组件,使用方便,不详细说明了. Excel工作表约定:整个Excel表 ...

  5. NPOI操作Excel辅助类

    /// <summary> /// NPOI操作excel辅助类 /// </summary> public static class NPOIHelper { #region ...

  6. NPOI操作excel之写入数据到excel表

    在上一篇<NPOI操作excel之读取excel数据>我们把excel数据写入了datatable中,本篇就讲如何把datatable数据写入excel中. using System; u ...

  7. C# 如何使用NPOI操作Excel以及读取合并单元格等

    C#操作Excel方法有很多,以前用的需要电脑安装office才能用,但因为版权问题公司不允许安装office.所以改用NPOI进行Excel操作,基本上一些简单的Excel操作都没有问题,读写合并单 ...

  8. 用NPOI操作EXCEL-锁定列CreateFreezePane()

    public void ExportPermissionRoleData(string search, int roleStatus) { var workbook = new HSSFWorkboo ...

  9. .NET 通过 NPOI 操作 Excel

    目录 .NET 通过 NPOI 操作 Excel 第一步:通过 NuGet 获取 NPOI 包并引入程序集 第二步:引入 NPOI 帮助类 第三步:在程序中调用相应的方法对数据进行导出导入操作 将 D ...

随机推荐

  1. impress.js 中文注释

    impress.js 中文注释 玄魂 /** * impress.js *(本翻译并未完全遵照原作者的注释翻译) * Impress.js 是受 Prezi启发,基于现代浏览器的 CSS3 与 Jav ...

  2. JS学习笔记2_面向对象

    1.对象的定义 ECMAScript中,对象是一个无序属性集,这里的“属性”可以是基本值.对象或者函数 2.数据属性与访问器属性 数据属性即有值的属性,可以设置属性只读.不可删除.不可枚举等等 访问器 ...

  3. UWP 大爆炸你个锤子

    今天看到  叫我蓝火火 s的 UWP中实现大爆炸效果(一) ,我也来说一下我的app [小薇自然语言处理]实现的大爆炸技术. 看一下效果先. 我的控件是基于wrappanel的,正如蓝火火说的,这样看 ...

  4. C++ 执行Windows cmd命令

    #include <windows.h> #include <iostream> #include <cstdio> using namespace std; vo ...

  5. Android逆向进阶—— 脱壳的奥义(基ART模式下的dump)

    本文作者:i春秋作家HAI_ZHU 0×00 前言 市面上的资料大多都是基于Dalvik模式的dump,所以这此准备搞一个ART模式下的dump.HAI_的使用手册(各种好东西) Dalvik模式是A ...

  6. [Vuejs] webpack+vue-cli打包如何引用相对路径

    默认情况下通过webpack+vuec-li打包的css.js等资源,路径都是绝对的,即static在根目录下,假如部署到带有文件夹目录的项目中,资源路径就会出错,如何解决. 1.修改资源引用相对路径 ...

  7. JavaScript getter和setter

    对象的属性是由属性名name,值key,和其他特性(可读写性 writable,可枚举性enumerable,可配置性configurable)组成的.从ES5开发,提供了getter和setter ...

  8. 初印象至Vue路由

    初印象系列为快速了解一门技术的内容,后续会推出本人应用这门技术时发现的一些认识. Vue路由和传统路由的区别: Vue路由主要是用来实现单页面应用内各个组件之间的切换,同样支持传递参数等功能.而传统路 ...

  9. [每天解决一问题系列 - 0002] Xcopy cannot copy file with long directory

    现象: 当xcopy的文件的全名(包括目录和文件名)的长度超过255字符时,会copy失败,得到insufficient memory错误 解决方法: 在Server 版的OS中,有robcopy命令 ...

  10. 九浅一深ThreadLocal

    ThreadLocal的作用.使用示例 ThreadLocal是线程的本地存储,存储在其内的值只能被当前线程访问到,其他线程获取不到,可以存储任意对象.经常用来存储当前线程的一些上下文信息,这样不用通 ...