npoi

特别提醒:
XSSFWorkbook  针对  EXCLE xlsx格式
 
HSSFWorkbook 针对WPS  xls格式
 
下面以XSSFWorkbook说明
常用实例:
创建一张表:hssfworkbook.CreateSheet(表名) as XSSFSheet;
XSSFWorkbook hssfworkbook=new XSSFWorkbook();
 XSSFSheet sheet= hssfworkbook.CreateSheet("sheet") as XSSFSheet;
 
在当前列表中设置每列的宽度(从0计起): sheet.SetColumnWidth(第几列, 宽度);
 sheet.SetColumnWidth(0, 100 * 30);
 sheet.SetColumnWidth(1, 100 * 30);
 sheet.SetColumnWidth(2, 100 * 30);
 
创建一行: sheet.CreateRow(第几行) as XSSFRow;
 XSSFRow row= sheet.CreateRow(0) as XSSFRow;//从0计起
 
在指定行中创建列 row.CreateCell(第几列) as XSSFCell;
 XSSFCell = row.CreateCell(1) as XSSFCell;
 
为指定列赋值: row.SetCellValue(值);SetCellValue有好几种重载,你可以设置单元格为bool、double、DateTime、string和HSSFRichTextString类型
 row.SetCellValue(“我是值”);


 
设置样式
 
XSSFCellStyle style = hssfworkbook.CreateCellStyle() as XSSFCellStyle;//创建样式
   设置边框
style.BorderLeft = BorderStyle.Thin;//设置左边边框
style.BorderRight = BorderStyle.Thin;//设置右边边框
style.BorderTop = BorderStyle.Thin;//设置项端边框
style.BorderBottom = BorderStyle.Thin;//设置下端边框
 是否自动换行
style.WrapText = true;//是否自动换行(true/flast)
 设置边框颜色
 style.TopBorderColor = HSSFColor.Black.Index;//设置上边框颜色
 style.BottomBorderColor = HSSFColor.Black.Index;//设置下边框颜色
 style.LeftBorderColor = HSSFColor.Black.Index;//设置左边框颜色
 style.RightBorderColor = HSSFColor.Black.Index;//设置右边框颜色
 设置内容对齐方式
 style.Alignment = HorizontalAlignment.Center;//设置对齐样式  水平
 style.VerticalAlignment = VerticalAlignment.Center;  //设置对齐样式 垂直对齐
 
设置填充图案
style.FillForegroundColor = 44;//图案线条色
style.FillPattern = FillPattern.SolidForeground; //图案 (此处要注意:选择背景图案SolidForeground就会见到是纯姿色的,如果选择其他就会有线条图案)
style.FillBackgroundColor = 44;//底色
 
设置字体样式
XSSFFont font = hssfworkbook.CreateFont() as XSSFFont;//设置字体样式
font.Boldweight = (short)FontBoldWeight.Bold;//加粗
font.FontName = “宋体”;//设置为宋体
font.FontHeightInPoints = 45;//大小   
font.Color = HSSFColor.Black.Index;//颜色  
style.SetFont(font);//把字体样式赋值类型:让这个类型具备这种属性
 
合拼单元格:
sheet.AddMergedRegion(new CellRangeAddress(第几行开始, 第几行结束, 第几列开始, 第几列结束));
 public CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol);
 
 sheet.AddMergedRegion(new CellRangeAddress(RowIndex - 1, RowIndex - 1, 1, column - 2));
 sheet.AddMergedRegion(new CellRangeAddress(startRow, RowIndex - 1, 0, 0));
 sheet.AddMergedRegion(new CellRangeAddress(RowIndex, RowIndex + 1, 0, column));
 
 
XSSFRichTextString应用
换行: 
前提要设置为:style.WrapText = true;//是否自动换行(true/flast) 
原理:利用宣文本XSSFRichTextString与换行标识( "\r\n")实现
string str = “我是前行” + "\r\n"+“我是后行;
row.SetCellValue(new XSSFRichTextString(str));
效果图:
  我是前行
  我是后行
设置不同颜色:
 string numStr = “我是前行"; //取得要变色的字符串长度(实际是坐标)
 int sumStrLenght = numStr.Length; //长为4
 string actTrStr = “我是后行的呢";
 int actTrStrLenght = actTrStr.Length; //取得要变色的字符串长度(实际是坐标)
 string cellValue = numStr + actTrStr; //得到最后字符串
 XSSFRichTextString hrts = new XSSFRichTextString(cellValue); //把指定字符串赋值给富文本
 XSSFFont noneScript = (XSSFFont)hssfworkbook.CreateFont(); //创建字体样式
 noneScript.Color = 10; //设置颜色
 hrts.ApplyFont(sumStrLenght, sumStrLenght + actTrStrLenght, noneScript);//  根椐指定坐标为字符串增加颜色public void ApplyFont(int startIndex, int endIndex, IFont font);
  我是前行
  我是红色


下载文件:

最后就是把这个HSSFWorkbook实例写入文件了,代码也很简单,如下所示:

FileStream file = new FileStream(@"test.xls", FileMode.Create);

hssfworkbook.Write(file);

file.Close();

posted on 2015-01-08 00:09  高达  阅读(401)  评论(0)    收藏  举报

导航