小5聊C#版本NPOI之基础样式设置

Posted 小5聊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小5聊C#版本NPOI之基础样式设置相关的知识,希望对你有一定的参考价值。

NPOI插件,C#版本,整理常见的样式设置

 1、单元格内换行

  • 效果

  • 代码如下
XSSFWorkbook workbook = new XSSFWorkbook(); //创建一个工作簿
ICellStyle cellStyle = workbook.CreateCellStyle();
cellStyle.WrapText = true;//开启换行

//创建第一行
IRow row = sheet.CreateRow(0);

//给第一行第一列赋值
row.CreateCell(0, CellType.String).SetCellValue("收纳\\n化妆品\\n美妆\\n声控\\n沉浸式"); //标签


//给第一列设置样式
row.GetCell(0).CellStyle = cellStyle;

2、高宽度自适应

只能说是相对自适应,根据项目业务进行相应增减

代码

//设置自适应 - 宽度 - 循环列
for (int columnNum = 0; columnNum <= 6; columnNum++)
{
    int columnWidth = sheet.GetColumnWidth(columnNum) / 256;
    for (int rowNum = 1; rowNum <= sheet.LastRowNum; rowNum++)
    {
        IRow currentRow = sheet.GetRow(rowNum);
        if (currentRow.GetCell(columnNum) != null)
        {
            ICell currentCell = currentRow.GetCell(columnNum);
            int length = Encoding.Default.GetBytes(currentCell.ToString()).Length;
            if (columnWidth < length)
            {
                columnWidth = length;
            }
        }
    }

    if (columnWidth > 100) columnWidth = 100;
    if (columnNum == 4) columnWidth = 30;

    sheet.SetColumnWidth(columnNum, columnWidth * 256);
}

//设置自适应 - 高度 - 循环行指定列
for (int rowNum = 1; rowNum <= videoList.Count; rowNum++)
{
    IRow currentRow = sheet.GetRow(rowNum);
    ICell currentCell = currentRow.GetCell(4); //标签
    int length = Encoding.UTF8.GetBytes(currentCell.ToString()).Length;
    currentRow.HeightInPoints = 20 * (length / 30 + 1);
}

3、列居中显示

4、合并单元格

1)合并行,比如:第一行的第一列和第六列合并

第一行就是:从下标0开始,到下标1结束

第一列到第六列:从下标0开始,到下标5结束

IRow baseInfo = sheet.CreateRow(0);
baseInfo.Sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 1, 0, 5));

2)合并格,比如:第六列的第一行到第六行合并

IRow baseInfo = sheet.CreateRow(0);
baseInfo.Sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 5, 5, 5));

5、单元格填充

  • 效果 

  •  代码

//先创建好样式
ICellStyle cellStyleBgColor = workbook.CreateCellStyle();    // 创建单元格样式
cellStyleBgColor.FillForegroundColor = IndexedColors.Grey25Percent.Index;   // 选择填充颜色
cellStyleBgColor.FillPattern = FillPattern.SolidForeground;   // 填充方式

//再给单元格赋值样式
IRow rowTitle = sheet.CreateRow(5);//创建表头行
ICell cell = rowTitle.GetCell(indexCell);
cell.CellStyle = cellStyleBgColor;	

。。。未完待续

以上是关于小5聊C#版本NPOI之基础样式设置的主要内容,如果未能解决你的问题,请参考以下文章

小5聊C#基础之调用cmd执行命令并且执行遇到需要输入Y或N的情况

小5聊C#基础之输出换行符号

小5聊C#基础知识之Decimal变量类型

小5聊C#基础之Ajax的getpost与Request.Form的判断

小5聊C#基础之内置和自定义委托的简单使用

小5聊C#基础之实例化和静态类对象调用对比