NPOI 操作 Excel 基础

作者:outlela  来源:念宇儿   发布时间:2019-6-11 8:50:27

由于XSSF中的XSSFWorkbook和HSSF中的HSSFWorkbook拥有的属性、方法等都是一样的,故下面就已一个为例做为展示,他们都继承与一个接口:IWorkbook(命名空间:using NPOI.SS.UserModel;)

1、创建工作簿

IWorkbook myHSSFworkbook = new HSSFWorkbook();  //用于创建 .xls
IWorkbook myXSSFworkbook = new XSSFWorkbook();  //用于创建 .xlsx

2、按指定名称创建Sheet

ISheet mysheetHSSF = myHSSFworkbook.CreateSheet("SheetName");

3、创建Sheet中的Row 

IRow rowHSSF = mysheetHSSF.CreateRow(0);

   

4、创建Row中的列Cell并赋值【SetCellValue有5个重载方法 bool、DateTime、double、string、IRichTextString(未演示)】

1 rowHSSF.CreateCell(0).SetCellValue(true);
2 rowHSSF.CreateCell(1).SetCellValue(System.DateTime.Now);
3 rowHSSF.CreateCell(2).SetCellValue(10.13);
4 rowHSSF.CreateCell(3).SetCellValue("学习NPOI!");

 5、合并单元格【CellRangeAddress(开始行,结束行,开始列,结束列)】

mysheetHSSF=.AddMergedRegion(new CellRangeAddress(1, 1, 1, 2)); //合并单元格第二行从第二列到第三列IRow SecondRowHSSF = mysheetHSSF.CreateRow(1); //添加第二行SecondRowHSSF.CreateCell(0).SetCellValue("第一列"); 
SecondRowHSSF.CreateCell(1).SetCellValue("第二列到第三列"); 
SecondRowHSSF.CreateCell(3).SetCellValue("第四列");

6、设置列宽【SetColumnWidth(列索引,N*256) 第二个参数是列宽 单位是1/256个字符宽度】

mysheetHSSF.SetColumnWidth(3, 30 * 256); //设置第四列的列宽为30个字符

7、设置行高【Height的单位是1/20个点】

 SecondRowHSSF.Height=50*20; //设置高度为50个点

8、设置单元格对齐方式 

IRow ThirdRowHSSF = mysheetHSSF.CreateRow(2);
ThirdRowHSSF.Height = 50 * 20;
ThirdRowHSSF.CreateCell(0).SetCellValue("默认对齐");
ThirdRowHSSF.CreateCell(1).SetCellValue("左对齐");
ThirdRowHSSF.CreateCell(2).SetCellValue("居中");
ThirdRowHSSF.CreateCell(3).SetCellValue("右对齐");
IRow FourthRowHSSF = mysheetHSSF.CreateRow(3);
FourthRowHSSF.Height = 50 * 20;
FourthRowHSSF.CreateCell(0).SetCellValue("填充单元格");
FourthRowHSSF.CreateCell(1).SetCellValue("she zhi dan yuan ge liang duan dui qi");
FourthRowHSSF.CreateCell(2).SetCellValue("跨列居中");
FourthRowHSSF.CreateCell(3).SetCellValue("分散对齐");

//创建CellStyle  
ICellStyle style0 = myHSSFworkbook.CreateCellStyle();
style0.Alignment = HorizontalAlignment.General;//【General】数字、时间默认:右对齐;BOOL:默认居中;字符串:默认左对齐  

ICellStyle style1 = myHSSFworkbook.CreateCellStyle();
style1.Alignment = HorizontalAlignment.Left;//【Left】左对齐  

ICellStyle style2 = myHSSFworkbook.CreateCellStyle();
style2.Alignment = HorizontalAlignment.Center;//【Center】居中  

ICellStyle style3 = myHSSFworkbook.CreateCellStyle();
style3.Alignment = HorizontalAlignment.Right;//【Right】右对齐  

ICellStyle style4 = myHSSFworkbook.CreateCellStyle();
style4.Alignment = HorizontalAlignment.Fill;//【Fill】填充  

ICellStyle style5 = myHSSFworkbook.CreateCellStyle();
style5.Alignment = HorizontalAlignment.Justify;//【Justify】两端对齐[会自动换行](主要针对英文)  
ICellStyle style6 = myHSSFworkbook.CreateCellStyle();
style6.Alignment = HorizontalAlignment.CenterSelection;//【CenterSelection】跨列居中  

ICellStyle style7 = myHSSFworkbook.CreateCellStyle();
style7.Alignment = HorizontalAlignment.Distributed;//【Distributed】分散对齐[会自动换行]

//【Tips】  
// 1.通过ICellStyle的VerticalAlignment属性可以设置垂直对齐模式与水平对齐无异 不再演示  
// 2.通过ISheet的SetDefaultColumnStyle(int column, ICellStyle style)方法可以设置整列的默认单元格样式; 

//将CellStyle应用于具体单元格  
ThirdRowHSSF.GetCell(0).CellStyle = style0;
ThirdRowHSSF.GetCell(1).CellStyle = style1;
ThirdRowHSSF.GetCell(2).CellStyle = style2;
ThirdRowHSSF.GetCell(3).CellStyle = style3;

FourthRowHSSF.GetCell(0).CellStyle = style4;
FourthRowHSSF.GetCell(1).CellStyle = style5;
FourthRowHSSF.GetCell(2).CellStyle = style6;
FourthRowHSSF.GetCell(3).CellStyle = style7;

11、设置Excel字体

//设置字体样式  
IFont font = myworkbook.CreateFont();
font.Boldweight = (Int16)FontBoldWeight.Bold;//原始字体
//【Tips】  
// 1.Boldweight 要使用(Int16)FontBoldWeight 对应的数值 否则无效
//font.Color = IndexedColors.Red.Index; //设置字体颜色
font.Color = NPOI.HSSF.Util.HSSFColor.Red.Index;//或者这样设置颜色
font.FontHeightInPoints = 17;//设置字体高度【FontHeight也是设置字体高度,但实际使用中有显示问题】
font.FontName = "黑体";//设置字体
font.IsBold = true;//是否加粗
font.IsItalic = true;//是否斜体
font.IsStrikeout = true;//是否加删除线
font.TypeOffset = FontSuperScript.Sub;//设置脚本上的字体【Sub 下;Super 上】
font.Underline = FontUnderlineType.Single;//下划线【Single一条线;Double两条线】
//创建CellStyle并加载字体
ICellStyle Fontstyle = myHSSFworkbook.CreateCellStyle();
Fontstyle.SetFont(font);

16、保存Excel

FileStream file = new FileStream(@"D:\CreateExcel.xls", FileMode.Create);
myworkbook.Write(file);
file.Close();


未完全摘录,请点击原文查看更详细介绍,感谢原文作者整理并分享 


*本文最后修改于:2019-6-28 14:47:45
本文链接地址:https://outlela.com/Code/49.html
转载或引用请保留地址并注明出处:outlela.com