// 获取色值 public static short GetCustomColor(this IWorkbook workBook, ColorType colorType) { short indexed = defaultColorIndexed; string rgb = ExcelExtend.GetColor(colorType).Item2; if (workBook is HSSFWorkbook) { var tempWork = (HSSFWorkbook)workBook; indexed = tempWork.GetCustomColor(rgb); } else if (workBook is XSSFWorkbook) { var tempWork = (XSSFWorkbook)workBook; indexed = tempWork.GetCustomColor(rgb); } return(indexed); }
/// <summary> /// 设置颜色 /// </summary> /// <param name="workBook"></param> /// <param name="colorType"></param> private static void SetCustomColor(this HSSFWorkbook workBook, ColorType colorType) { string rgb = ExcelExtend.GetColor(colorType).Item2; workBook.SetCustomColor(rgb); }
/// <summary> /// 设置边框 /// </summary> /// <param name="cell"></param> /// <param name="boderType"></param> /// <param name="lineColor"></param> public static void SetBoderLine(this ICell cell, ExcelBorderType boderType = ExcelBorderType.BorderAll, ColorType lineColor = ColorType.black) { if (cell == null) { return; } cell.DealParam(); string rgb = ExcelExtend.GetColor(lineColor).Item2; short indexed = workBook.GetCustomColor(rgb); switch (boderType) { case ExcelBorderType.BorderAll: cellStyle.BorderBottom = BorderStyle.Thin; cellStyle.BottomBorderColor = indexed; cellStyle.BorderTop = BorderStyle.Thin; cellStyle.TopBorderColor = indexed; cellStyle.BorderLeft = BorderStyle.Thin; cellStyle.LeftBorderColor = indexed; cellStyle.BorderRight = BorderStyle.Thin; cellStyle.RightBorderColor = indexed; break; case ExcelBorderType.BorderAllBold: cellStyle.BorderBottom = BorderStyle.Thick; cellStyle.BottomBorderColor = indexed; cellStyle.BorderTop = BorderStyle.Thick; cellStyle.TopBorderColor = indexed; cellStyle.BorderLeft = BorderStyle.Thick; cellStyle.LeftBorderColor = indexed; cellStyle.BorderRight = BorderStyle.Thick; cellStyle.RightBorderColor = indexed; break; case ExcelBorderType.BorderBottomBold: cellStyle.BorderBottom = BorderStyle.Thick; cellStyle.BottomBorderColor = indexed; break; case ExcelBorderType.BorderBottom: cellStyle.BorderBottom = BorderStyle.Thin; cellStyle.BottomBorderColor = indexed; break; case ExcelBorderType.BorderBottomDouble: cellStyle.BorderBottom = BorderStyle.Double; cellStyle.BottomBorderColor = indexed; break; case ExcelBorderType.BorderLeft: cellStyle.BorderLeft = BorderStyle.Thin; cellStyle.LeftBorderColor = indexed; break; case ExcelBorderType.BorderRight: cellStyle.BorderRight = BorderStyle.Thin; cellStyle.RightBorderColor = indexed; break; case ExcelBorderType.BorderTop: cellStyle.BorderTop = BorderStyle.Thin; cellStyle.TopBorderColor = indexed; break; case ExcelBorderType.BorderTopAndBotoomBold: cellStyle.BorderTop = BorderStyle.Thin; cellStyle.TopBorderColor = indexed; cellStyle.BorderBottom = BorderStyle.Thick; cellStyle.BottomBorderColor = indexed; break; case ExcelBorderType.BorderTopAndBottom: cellStyle.BorderTop = BorderStyle.Thin; cellStyle.TopBorderColor = indexed; cellStyle.BorderBottom = BorderStyle.Thin; cellStyle.BottomBorderColor = indexed; break; case ExcelBorderType.BorderTopAndBottomDouble: cellStyle.BorderTop = BorderStyle.Thin; cellStyle.TopBorderColor = indexed; cellStyle.BorderBottom = BorderStyle.Double; cellStyle.BottomBorderColor = indexed; break; } cell.CellStyle = cellStyle; }