由于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();
未完全摘录,请点击原文查看更详细介绍,感谢原文作者整理并分享