NPOI导Excel样式设置

本文介绍使用NPOI库在Java环境下创建和美化Excel文件的方法,包括字体设置、单元格背景色及边框等样式配置,并提供文件流下载示例。

NPOI导Excel样式设置

一、创建一个Excel

复制代码
               //创建一个工作簿
                XSSFWorkbook workbook = new XSSFWorkbook();
                //创建一个页
                ISheet sheet = workbook.CreateSheet("sheet1");
                //创建一行
                IRow row = sheet.CreateRow(0);
                //创建一列
                ICell cell = row.CreateCell(0);
复制代码

 

二、设置字体

复制代码
          ICellStyle style = workbook.CreateCellStyle();//创建样式对象
                IFont font = workbook.CreateFont(); //创建一个字体样式对象
                font.FontName = "方正舒体"; //和excel里面的字体对应
                font.Color = new HSSFColor.PINK().GetIndex();//颜色参考NPOI的颜色对照表(替换掉PINK())
                font.IsItalic = true; //斜体
                font.FontHeightInPoints = 16;//字体大小
                font.Boldweight = short.MaxValue;//字体加粗
                style.SetFont(font); //将字体样式赋给样式对象
cell.CellStyle = style; //把样式赋给单元格
复制代码

 三、设置单元格

1、单元格前景色

 ICellStyle style=workbook.CreateCellStyle();
 style.FillForegroundColor = 14;  //具体数字代表的颜色看NPOI颜色对照表
 style.FillPattern = FillPatternType.SOLID_FOREGROUND;

2、单元格宽高

     行高:row.Height = 30 * 20;    //行高为30

     列宽:sheet.SetColumnWidth(3, 13 * 256)   //第4列的列宽为13

3、合并单元格

    单元格合并后,样式以左上角的单元格为准

    //CellRangeAddress四个参数为:起始行,结束行,起始列,结束列

  sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 10));

4、水平居中

 style.Alignment = HorizontalAlignment.CENTER;

5、设置公式

    不需要写“=”号

  cell.CellFormula = "公式";

6.边框

//上下左右

styleFont.BorderTop = NPOI.SS.UserModel.BorderStyle.THIN;    
styleFont.BorderBottom = NPOI.SS.UserModel.BorderStyle.THIN;  
styleFont.BorderLeft = NPOI.SS.UserModel.BorderStyle.THIN;  
styleFont.BorderRight = NPOI.SS.UserModel.BorderStyle.THICK;

 

颜色对照表:

颜色测试Class名称short
    
 Test颜色Black8
 Test颜色Brown60
 Test颜色Olive_Green59
 Test颜色Dark_Green58
 Test颜色Dark_Teal56
 Test颜色Dark_Blue18
 Test颜色Indigo62
 Test颜色Grey_80_PERCENT63
 Test颜色Dark_Red16
 Test颜色Orange53
 Test颜色DARK_YELLOW19
 Test颜色Green17
 Test颜色Teal21
 Test颜色Blue12
 Test颜色Blue_Grey54
 Test颜色Grey_50_PERCENT23
 Test颜色Red10
 Test颜色LIGHT_ORANGE52
 Test颜色LIME50
 Test颜色SEA_GREEN57
 Test颜色AQUA49
 Test颜色LIGHT_BLUE48
 Test颜色VIOLET20
 Test颜色GREY_40_PERCENT55
 Test颜色Pink14
 Test颜色Gold51
 Test颜色Yellow13
 Test颜色BRIGHT_GREEN11
 Test颜色TURQUOISE15
 Test颜色SKY_BLUE40
 Test颜色Plum61
 Test颜色GREY_25_PERCENT22
 Test颜色Rose45
 Test颜色Tan47
 Test颜色LIGHT_YELLOW43
 Test颜色LIGHT_GREEN42
 Test颜色LIGHT_TURQUOISE41
 Test颜色PALE_BLUE44
 Test颜色LAVENDER46
 Test颜色White9
 Test颜色CORNFLOWER_BLUE24
 Test颜色LEMON_CHIFFON26
 Test颜色MAROON25
 Test颜色ORCHID28
 Test颜色CORAL29
 Test颜色ROYAL_BLUE30
 Test颜色LIGHT_CORNFLOWER_BLUE31
 Test颜色AUTOMATIC64

四、用文件流方式下载NPOI excel

1
2
3
4
5
6
7
8
9
10
11
//生成excel文件流下载
           using  (MemoryStream ms = new  MemoryStream())
           {
              workbook.write(ms);
               string  fileName = HttpUtility.UrlEncode( "test.xlsx" );
               Response.AddHeader( "content-Disposition" "attachment;filename="  + fileName);
               //增加这指定长度防止导出的excel有不可读取内容。
               Response.AddHeader( "content-Length" , ms.ToArray().Length.ToString());
               Response.BinaryWrite(ms.ToArray());
               Response.End();
           }

  

 

转载于:https://www.cnblogs.com/dxqNet/p/9267123.html

### C# 使用 NPOI导出 Excel 设置单元格样式的示例 #### 创建初始化工作簿对象 为了使用 NPOI 导出 Excel 文件,首先需要创建 `HSSFWorkbook` 或者 `XSSFWorkbook` 对象来表示整个 Excel 文档。对于不同版本的 Excel 文件,选择不同的类: - 如果目标是 `.xls` 格式,则应使用 `HSSFWorkbook` 类[^3]。 - 若目标为 `.xlsx` 格式,则需采用 `XSSFWorkbook`。 ```csharp // 创建一个新的Excel文档(适用于.xls) var excelBook = new HSSFWorkbook(); ``` #### 定义和配置单元格样式 通过创建工作簿之后,可以利用该对象进一步定义所需的单元格样式。这一步骤非常重要,因为默认情况下不会有任何预设格式应用于新创建的工作表中的数据。因此,在向单元格添加内容之前,建议先准备好必要的样式规则。 ```csharp // 创建一个用于自定义外观的新样式实例 ICellStyle cellStyle = excelBook.CreateCellStyle(); // 设置边框线型 cellStyle.BorderBottom = BorderStyle.Thin; cellStyle.BorderLeft = BorderStyle.Thin; cellStyle.BorderRight = BorderStyle.Thin; cellStyle.BorderTop = BorderStyle.Thin; // 设定水平居中对齐方式 cellStyle.Alignment = HorizontalAlignment.Center; // 垂直方向上的中心位置排列 cellStyle.VerticalAlignment = VerticalAlignment.Center; ``` #### 控制数字格式化 当处理涉及数值类型的字段时,可能希望指定特定的小数位精度或其他形式的数据呈现模式。可以通过修改 `DataFormat` 属性实现这一点。 ```csharp // 获取内置格式或注册新的格式字符串 IDataFormat format = excelBook.CreateDataFormat(); cellStyle.DataFormat = format.GetFormat("0.00"); // 保留两位小数 ``` #### 调整行高与列宽 为了让最终生成的表格看起来更加美观易读,还可以调整每一行列以及各列之间的间距大小。注意这里的单位转换关系:行高的设定是以 twips (1/20th of a point) 计算;而列宽则是基于字符宽度的比例因子计算得出。 ```csharp // 新建一行将高度设为标准字体下的合适尺寸 IRow row = sheet.CreateRow(rowIndex); row.HeightInPoints = 18f; // 行高设置成18磅 // 修改某列的宽度使其适应较长的文字输入 sheet.SetColumnWidth(columnIndex, 50 * 256); // 列宽设置成大约等于50个字符长度 ``` 以上就是关于如何在 C# 中运用 NPOI 库完成基本的 Excel 文件导出功能的同时定制单元格样式的介绍。这些技巧可以帮助开发者更好地掌控输出文件的质量,满足业务逻辑方面的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值