.Net Excel操作之NPOI【操作Excel单元格】富文本,单元格颜色、边框

 

一、NPOI 操作单元格富文本

            //创建工作簿
            HSSFWorkbook wk = new HSSFWorkbook();
            //XSSFWorkbook wk = new XSSFWorkbook();  //不可用

            //创建名称为mySheet的表
            ISheet tb = wk.CreateSheet("mySheet");
            IRow row = tb.CreateRow(0);
            ICell cell = row.CreateCell(0); //创建单元格,写入数据

            HSSFRichTextString rich = new HSSFRichTextString("中文,测试内容");
            IFont font2 = wk.CreateFont();
            font2.Color = HSSFColor.OliveGreen.Blue.Index;
            rich.ApplyFont(0, 2, font2);
            cell.SetCellValue(rich);

 

 

操作结果如下:

 

 

二、NPOI操作单元格,边框、边线、边线颜色

使用方案1:

 

                 ICellStyle style = null;
                XSSFWorkbook wk = new XSSFWorkbook(fs);
                style = wk.CreateCellStyle();
                //设置单元格线
                style.BorderBottom = BorderStyle.Thin;
                style.BorderLeft = BorderStyle.Thin;
                style.BorderTop = BorderStyle.Thin;
                style.BorderRight = BorderStyle.Thin;
                //设置单元格线颜色
                style.BottomBorderColor = HSSFColor.Black.Index;
                style.LeftBorderColor = HSSFColor.Black.Index;
                style.TopBorderColor = HSSFColor.Black.Index;
                style.RightBorderColor = HSSFColor.Black.Index;
                ISheet sheet = wk.GetSheetAt(0);

                    //创建单元格
                    IRow row = sheet.CreateRow(index);
                    getCell(row, 0).SetCellValue(sort);

                    getCell(row, 1).SetCellValue(item.Title);
                    getCell(row, 2).SetCellValue((double)item.PriceCheck);
                    getCell(row, 3).SetCellValue((double)item.PrimeRate);
                    getCell(row, 4).SetCellValue((double)item.PriceSend);
                    getCell(row, 5).SetCellValue(item.Count);
                    getCell(row, 6).SetCellValue((double)(item.PriceSend * item.Count));
                    getCell(row, 7).SetCellValue(String.Empty);

   //设置方法
        private ICell getCell(IRow row, int index) {
            ICell cell0 = row.CreateCell(index);
            cell0.CellStyle = style;
            return cell0;
        }

 

 

 

 

使用方案2

                    //创建单元格边框
                    ICell cell0 = row.CreateCell(0);
                    cell0.CellStyle.BorderBottom = BorderStyle.Thin;
                    cell0.CellStyle.BorderLeft = BorderStyle.Thin;
                    cell0.CellStyle.BorderTop = BorderStyle.Thin;
                    cell0.CellStyle.BorderRight = BorderStyle.Thin;

                    //设置单元格线颜色
                    cell0.CellStyle.BottomBorderColor = HSSFColor.OliveGreen.Black.Index;
                    cell0.CellStyle.LeftBorderColor = HSSFColor.OliveGreen.Black.Index;
                    cell0.CellStyle.TopBorderColor = HSSFColor.OliveGreen.Black.Index;
                    cell0.CellStyle.RightBorderColor = HSSFColor.OliveGreen.Black.Index;

 

很多表格中都要使用边框,本节将为你重点讲解NPOI中边框的设置和使用。

边框和其他单元格设置一样也是调用ICellStyle接口,ICellStyle有2种和边框相关的属性,分别是:

边框相关属性 说明 范例
Border+方向 边框类型 BorderTop, BorderBottom,BorderLeft, BorderRight
方向+BorderColor 边框颜色 TopBorderColor,BottomBorderColor, LeftBorderColor, RightBorderColor

其中边框类型分为以下几种:

边框范例图 对应的静态值
image CellBorderType.DOTTED
image CellBorderType.HAIR
image CellBorderType.DASH_DOT_DOT
image CellBorderType.DASH_DOT
image CellBorderType.DASHED
image CellBorderType.THIN
image CellBorderType.MEDIUM_DASH_DOT_DOT
image CellBorderType.SLANTED_DASH_DOT
image CellBorderType.MEDIUM_DASH_DOT
image CellBorderType.MEDIUM_DASHED
image CellBorderType.MEDIUM
image CellBorderType.THICK
image CellBorderType.DOUBLE

 

至于颜色那就很多了,全部在HSSFColor下面,如HSSFColor.GREEN, HSSFColor.RED,都是静态实例,可以直接引用。

下面我们假设我们要把一个单元格的四周边框都设置上,可以用下面的代码:

复制代码
    //创建单元格样式
    ICellStyle cellStyle = workbook.CreateCellStyle();
   //设置为文本格式,也可以为 text,即 dataFormat.GetFormat("text");
    cellStyle.DataFormat = dataFormat.GetFormat("@");
    cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;    //下边框线
    cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;      //左边框线
    cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;     //右边框线
    cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;       //上边框线
复制代码

 

更多:

.Net Excel操作之NPOI,操作Excel单元格自动换行

.Net Core NOPI操作word(二) 表格操作

posted @ 2021-05-12 22:55  天马3798  阅读(1193)  评论(0编辑  收藏  举报