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();
浙公网安备 33010602011771号