屬於NPOI的用法.
新建Excel
HSSFWorkbook hssfworkbook = new HSSFWorkbook();
ISheet sheet1 = hssfworkbook.CreateSheet("sheet1");//建立Sheet1
保存(导出)Excel
FileStream file = new FileStream(@"e:\HSSFWorkbook.xls", FileMode.Create);
hssfworkbook.Write(file);
file.Close();
导入Excel
FileStream file = new FileStream(@"template/Template.xls", FileMode.Open, FileAccess.Read);
hssfworkbook = new HSSFWorkbook(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(new CellRangeAddress(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;