Esempio n. 1
0
 public _ExcelCellsBorder(int startRowNum, int startColNum, int endRowNum, int endColNum, ExcelBordersEdge bordersEdge, ExcelBorderWeight bordersWeight)
 {
     this.startRowNum   = startRowNum;
     this.startColNum   = startColNum;
     this.endRowNum     = endRowNum;
     this.endColNum     = endColNum;
     this.bordersEdge   = bordersEdge;
     this.bordersWeight = bordersWeight;
 }
        public void AddBorder(ExcelBordersIndex index, ExcelBorderWeight weight, ExcelLineStyle lineStyle)
        {
            ExcelBorderItem border         = new ExcelBorderItem(index, weight, lineStyle);
            ExcelBorderItem existingBorder = this[border.Index];

            if (null == existingBorder)
            {
                Add(border);
            }
            else
            {
                existingBorder.LineStyle = border.LineStyle;
                existingBorder.Weight    = border.Weight;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 设置边框,包括外部和内部
        /// </summary>
        /// <param name="startRow"></param>
        /// <param name="startColumn"></param>
        /// <param name="endRow"></param>
        /// <param name="endColumn"></param>
        /// <param name="styleLine"></param>
        /// <param name="borderWeight"></param>
        /// <param name="constants"></param>
        public void SetCellBorder(int startRow, int startColumn, int endRow, int endColumn,
                                  ExcelStyleLine styleLine = ExcelStyleLine.Continious, ExcelBorderWeight borderWeight = ExcelBorderWeight.Thin, Constants constants = Constants.xlAutomatic)
        {
            Range range = GetRange(startRow, startColumn, endRow, endColumn);

            range.Select();

            // 上边框
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeTop].LineStyle  = styleLine;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeTop].Weight     = borderWeight;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeTop].ColorIndex = constants;
            // 下边框
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeBottom].LineStyle  = styleLine;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeBottom].Weight     = borderWeight;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeBottom].ColorIndex = constants;
            // 左边框
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeLeft].LineStyle  = styleLine;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeLeft].Weight     = borderWeight;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeLeft].ColorIndex = constants;
            // 右边框
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeRight].LineStyle  = styleLine;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeRight].Weight     = borderWeight;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeRight].ColorIndex = constants;
            // 内部水平
            range.Borders[(XlBordersIndex)ExcelBordersIndex.InsideHorizontal].LineStyle  = styleLine;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.InsideHorizontal].Weight     = borderWeight;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.InsideHorizontal].ColorIndex = constants;
            // 内部垂直
            range.Borders[(XlBordersIndex)ExcelBordersIndex.InsideVertical].LineStyle  = styleLine;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.InsideVertical].Weight     = borderWeight;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.InsideVertical].ColorIndex = constants;
        }
Esempio n. 4
0
        /// <summary>
        /// 设置单个单元格边框
        /// </summary>
        /// <param name="row">单元格行坐标</param>
        /// <param name="column">单元格列坐标</param>
        /// <param name="styleLine">线条形态</param>
        /// <param name="borderWeight">线条粗细</param>
        /// <param name="constants"></param>
        public void SetCellBorder(int row, int column,
                                  ExcelStyleLine styleLine = ExcelStyleLine.Continious, ExcelBorderWeight borderWeight = ExcelBorderWeight.Thin, Constants constants = Constants.xlAutomatic)
        {
            Range range = GetRange(row, column);

            range.Select();

            // 上边框
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeTop].LineStyle  = styleLine;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeTop].Weight     = borderWeight;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeTop].ColorIndex = constants;
            // 下边框
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeBottom].LineStyle  = styleLine;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeBottom].Weight     = borderWeight;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeBottom].ColorIndex = constants;
            // 左边框
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeLeft].LineStyle  = styleLine;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeLeft].Weight     = borderWeight;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeLeft].ColorIndex = constants;
            // 右边框
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeRight].LineStyle  = styleLine;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeRight].Weight     = borderWeight;
            range.Borders[(XlBordersIndex)ExcelBordersIndex.EdgeRight].ColorIndex = constants;
        }
Esempio n. 5
0
 public ExcelBorderItem(ExcelBordersIndex index, ExcelBorderWeight weight, ExcelLineStyle lineStyle)
 {
     Index     = index;
     Weight    = weight;
     LineStyle = lineStyle;
 }
Esempio n. 6
0
 /// <summary>
 /// 设置单元格外边框(上,下,右,左边框)
 /// </summary>
 /// <param name="range">Range对象</param>
 /// <param name="bordersLineStyle">边框线条分隔</param>
 /// <param name="bordersWeight">边框线粗细</param>
 public void SetCellsOutline(Excel.Range range, ExcelBordersLineStyle bordersLineStyle, ExcelBorderWeight bordersWeight)
 {
     //Left
     SetCellsBorder(range, ExcelBordersEdge.EdgeLeft, bordersLineStyle, bordersWeight);
     //Right
     SetCellsBorder(range, ExcelBordersEdge.EdgeRight, bordersLineStyle, bordersWeight);
     //Top
     SetCellsBorder(range, ExcelBordersEdge.EdgeTop, bordersLineStyle, bordersWeight);
     //Bottom
     SetCellsBorder(range, ExcelBordersEdge.EdgeBottom, bordersLineStyle, bordersWeight);
 }
Esempio n. 7
0
        /// <summary>
        /// 设置单元格边框(只能设置单个单元格的边框)
        /// </summary>
        /// <param name="range">Range对象</param>
        /// <param name="bordersEdge">单元格边框范围</param>
        /// <param name="ExcelBordersEdge">单元格边线</param>
        /// <param name="bordersLineStyle">边框线条分隔</param>
        /// <param name="bordersWeight">边框线粗细</param>
        public void SetCellsBorder(Excel.Range range, ExcelBordersEdge bordersEdge, ExcelBordersLineStyle bordersLineStyle, ExcelBorderWeight bordersWeight)
        {
            //range.Select();
            Excel.Border border = null;

            switch (bordersEdge)
            {
            //左右顶底的线
            case ExcelBordersEdge.EdgeLeft:
                border = range.Borders[Excel.XlBordersIndex.xlEdgeLeft];
                break;

            case ExcelBordersEdge.EdgeRight:
                border = range.Borders[Excel.XlBordersIndex.xlEdgeRight];
                break;

            case ExcelBordersEdge.EdgeTop:
                border = range.Borders[Excel.XlBordersIndex.xlEdgeTop];
                break;

            case ExcelBordersEdge.EdgeBottom:
                border = range.Borders[Excel.XlBordersIndex.xlEdgeBottom];
                break;

            //对角线
            case ExcelBordersEdge.DiagonalDown:
                border = range.Borders[Excel.XlBordersIndex.xlDiagonalDown];
                break;

            case ExcelBordersEdge.DiagonUp:
                border = range.Borders[Excel.XlBordersIndex.xlDiagonalUp];
                break;

            //边框内部是横竖线(不包括边框)
            case ExcelBordersEdge.InsideHorizontal:
                border = range.Borders[Excel.XlBordersIndex.xlInsideHorizontal];
                break;

            case ExcelBordersEdge.InsideVertical:
                border = range.Borders[Excel.XlBordersIndex.xlInsideVertical];
                break;

            case ExcelBordersEdge.LineStyleNone:
                //所先范围内所有线都没有
                range.Borders[Excel.XlBordersIndex.xlDiagonalDown].LineStyle     = Excel.XlLineStyle.xlLineStyleNone;           //xlNone
                range.Borders[Excel.XlBordersIndex.xlDiagonalUp].LineStyle       = Excel.XlLineStyle.xlLineStyleNone;
                range.Borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle         = Excel.XlLineStyle.xlLineStyleNone;
                range.Borders[Excel.XlBordersIndex.xlEdgeTop].LineStyle          = Excel.XlLineStyle.xlLineStyleNone;
                range.Borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle       = Excel.XlLineStyle.xlLineStyleNone;
                range.Borders[Excel.XlBordersIndex.xlEdgeRight].LineStyle        = Excel.XlLineStyle.xlLineStyleNone;
                range.Borders[Excel.XlBordersIndex.xlInsideVertical].LineStyle   = Excel.XlLineStyle.xlLineStyleNone;
                range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].LineStyle = Excel.XlLineStyle.xlLineStyleNone;
                break;
            }

            if (border != null)
            {
                //XlLineStyle
                Excel.XlLineStyle mXlLineStyle = Excel.XlLineStyle.xlContinuous;
                switch (bordersLineStyle)
                {
                case ExcelBordersLineStyle.Continious:
                    mXlLineStyle = Excel.XlLineStyle.xlContinuous;
                    break;

                case ExcelBordersLineStyle.Dash:
                    mXlLineStyle = Excel.XlLineStyle.xlDash;
                    break;

                case ExcelBordersLineStyle.DashDot:
                    mXlLineStyle = Excel.XlLineStyle.xlDashDot;
                    break;

                case ExcelBordersLineStyle.DashDotDot:
                    mXlLineStyle = Excel.XlLineStyle.xlDashDotDot;
                    break;

                case ExcelBordersLineStyle.Dot:
                    mXlLineStyle = Excel.XlLineStyle.xlDot;
                    break;

                case ExcelBordersLineStyle.Double:
                    mXlLineStyle = Excel.XlLineStyle.xlDouble;
                    break;

                case ExcelBordersLineStyle.StyleNone:
                    mXlLineStyle = Excel.XlLineStyle.xlLineStyleNone;
                    break;

                case ExcelBordersLineStyle.SlantDashDot:
                    mXlLineStyle = Excel.XlLineStyle.xlSlantDashDot;
                    break;
                }
                border.LineStyle = mXlLineStyle;

                //XlBorderWeight
                Excel.XlBorderWeight mXlBorderWeight = Excel.XlBorderWeight.xlThin;

                switch (bordersWeight)
                {
                case ExcelBorderWeight.Hairline:
                    mXlBorderWeight = Excel.XlBorderWeight.xlHairline;
                    break;

                case ExcelBorderWeight.Medium:
                    mXlBorderWeight = Excel.XlBorderWeight.xlMedium;
                    break;

                case ExcelBorderWeight.Thick:
                    mXlBorderWeight = Excel.XlBorderWeight.xlThick;
                    break;

                case ExcelBorderWeight.Thin:
                    mXlBorderWeight = Excel.XlBorderWeight.xlThin;
                    break;
                }
                border.Weight = mXlBorderWeight;
            }//end if
        }
Esempio n. 8
0
 /// <summary>
 ///  设置某范围内所有单元格边框(不包含最左,最右边框,最顶部,最底部)
 /// </summary>
 /// <param name="StartRowNum">起始行</param>
 /// <param name="StartColNum">起始列</param>
 /// <param name="EndRowNum">结束行</param>
 /// <param name="EndRowNum">结束列</param>
 /// <param name="bordersWeight">边框线粗细</param>
 public void SetAllCellsBorderExclusiveRLTB(int StartRowNum, int StartColNum, int EndRowNum, int EndColNum, ExcelBorderWeight bordersWeight)
 {
     for (int iRow = StartRowNum + 1; iRow <= EndRowNum; iRow++)
     {
         Range range = GetRange(iRow, StartColNum, iRow, EndColNum);
         SetCellsBorder(range, ExcelBordersEdge.EdgeTop, ExcelBordersLineStyle.Continious, bordersWeight);
     }
     for (int iCol = StartColNum; iCol < EndColNum; iCol++)
     {
         Range range = GetRange(StartRowNum, iCol, EndRowNum, iCol);
         SetCellsBorder(range, ExcelBordersEdge.EdgeRight, ExcelBordersLineStyle.Continious, bordersWeight);
     }
 }