C# 导出Excel、组件NPOI设置单元格格式

最近在做excel相关的东西,发现NPOI组件很好用.xlsx、.xls都可以操作
.xlsx 要使用XSSFWorkbook
.xls 要使用HSSFWorkbook

HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls
XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx

设置背景表格宽度、高度
这里注意有一个坑,一定要先创建表头数据,否则设置宽度无效,具体参考此博文

				//创建excel表格
                XSSFWorkbook workbook = new XSSFWorkbook();
                //创建工作表 sheet
                ISheet sheet = workbook.CreateSheet(Subject);
                //这里注意有一个坑,一定要先创建表头数据,否则设置宽度无效。。
                sheet.SetColumnWidth(0, 10 * 256);
                sheet.SetColumnWidth(1, 35 * 256);
                sheet.SetColumnWidth(2, 50 * 256);
                sheet.SetColumnWidth(3, 10 * 256);
                sheet.SetColumnWidth(4, 20 * 256);
                //默认列宽 SetColumnWidth每个单元格都需要设置,DefaultColumnWidth 只需要设置一次
                sheet.DefaultColumnWidth = 10 * 256;
 				//列自适应
                sheet.AutoSizeColumn(sdf, true);

设置边框和边框颜色

            rowStyleColor.BorderRight = BorderStyle.Thin;
            rowStyleColor.BorderLeft = BorderStyle.Thin;
            rowStyleColor.BorderTop = BorderStyle.Thin;
            rowStyleColor.BorderBottom = BorderStyle.Thin;
            rowStyleColor.SetTopBorderColor(new XSSFColor(IndexedColors.Black.RGB));
            rowStyleColor.SetBottomBorderColor(new XSSFColor(IndexedColors.Black.RGB));
            rowStyleColor.SetLeftBorderColor(new XSSFColor(IndexedColors.Black.RGB));
            rowStyleColor.SetRightBorderColor(new XSSFColor(IndexedColors.Black.RGB));

设置表格文字格式

 //表格样式
                XSSFCellStyle ThStyleColor = (XSSFCellStyle)workbook.CreateCellStyle();
                //水平居中
                ThStyleColor.Alignment = HorizontalAlignment.Center;
                //垂直居中
                ThStyleColor.VerticalAlignment = VerticalAlignment.Center;
                //自动换行
                ThStyleColor.WrapText = true;
                //实例化表格样式
                XSSFColor xssfColor = new XSSFColor();
                //设置表格背景颜色
                //设置rgb
                byte[] colorRgb = { 100, 149, 237 };
                //写入rgb值
                xssfColor.SetRgb(colorRgb);
                //设置rgb
                ThStyleColor.FillForegroundColorColor = xssfColor;
                //设置填充样式
                ThStyleColor.FillPattern = FillPattern.SolidForeground;

合并单元格
AddMergedRegion(从第几行开始,第几行结束,从第几列开始,第几列结束)

            sheet.AddMergedRegion(new CellRangeAddress(index - data.Records.Count(), index-1, 0, 0));
            sheet.AddMergedRegion(new CellRangeAddress(index - data.Records.Count(), index-1, 1, 1));

以后遇到会不断补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值