最近在做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));
以后遇到会不断补充