NPOI导出cell自适应宽度(中文适用),加边框样式等

1.NPOI导出,单元格 根据导出内容自适应宽度。(中文适用)


//获取当前列的宽度,然后对比本列的长度,取最大值
            for (int columnNum = 0; columnNum <= _excelSource.Columns.Count; columnNum++)
            {
                sheet.AutoSizeColumn(columnNum);//先来个常规自适应

                int columnWidth = sheet.GetColumnWidth(columnNum) / 256;
                for (int rowNum = 1; rowNum <= sheet.LastRowNum; rowNum++)
                {
                    IRow currentRow;
                    //当前行未被使用过
                    if (sheet.GetRow(rowNum) == null)
                    {
                        currentRow = sheet.CreateRow(rowNum);
                    }
                    else
                    {
                        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;
                        }
                    }
                }
                sheet.SetColumnWidth(columnNum, columnWidth * 300);//一般是*256,我给加宽一丢丢
            }

2.NPOI单元格加边框,常规都是BorderStyle.Thin, 也可以设置单元格边框颜色 (TopBorderColor,BottomBorderColor, LeftBorderColor, RightBorderColor)

var cellStyle = workbook.CreateCellStyle();

 cellStyle .BorderBottom = BorderStyle.Thin; //下边框
 cellStyle .BorderLeft = BorderStyle.Thin;//左边框
 cellStyle .BorderTop = BorderStyle.Thin;//上边框
 cellStyle .BorderRight = BorderStyle.Thin;//右边框


 cellStyle .TopBorderColor= HSSFColor.GREEN.index; //边框颜色

 

你可能感兴趣的:(NPOI)