Excel Interop - Draw All Borders in a Range

后端 未结 7 1384
春和景丽
春和景丽 2020-12-17 18:29

I see from Microsoft\'s documentation that I can access the particular border edges of a cell using the \'xlBordersIndex\' property and for example set the border style for

相关标签:
7条回答
  • 2020-12-17 18:45
    Microsoft.Office.Interop.Excel.Range tRange = xlWorkSheet.UsedRange;
            tRange.Borders.LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            tRange.Borders.Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin;
    
    0 讨论(0)
  • 2020-12-17 18:54
    oRange = SHEET2.get_Range("a1", "a10");
    oRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlLineStyle.xlContinuous;
    oRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlLineStyle.xlContinuous;
    oRange.Borders.get_Item(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlContinuous;
    oRange.Borders.get_Item(Excel.XlBordersIndex.xlInsideVertical).LineStyle = Excel.XlLineStyle.xlContinuous;
    
    0 讨论(0)
  • 2020-12-17 18:57

    Finally, I got it. I did this without impacting the performance too. I am taking a simple excel to explain here :

    Before

    I managed to store the range as A1:C4 in a variable dynamically in exRange and used the below code to give border

    ((Range)excelSheet.get_Range(exRange)).Cells.Borders.LineStyle = XlLineStyle.xlContinuous;
    


    After

    0 讨论(0)
  • 2020-12-17 19:01

    I'm not yet familiar wit C#, but in VBA there are Range.Borders(xlInsideVertical) and Range.Borders(xlInsideHorizontal) properties. Try to use macro-recorder and apply all borders for any workbook region. Perhaps that will help.

    0 讨论(0)
  • 2020-12-17 19:03
    private void AllBorders(Excel.Borders _borders)
        {
            _borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Excel.XlLineStyle.xlContinuous;
            _borders[Excel.XlBordersIndex.xlEdgeRight].LineStyle = Excel.XlLineStyle.xlContinuous;
            _borders[Excel.XlBordersIndex.xlEdgeTop].LineStyle = Excel.XlLineStyle.xlContinuous;
            _borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Excel.XlLineStyle.xlContinuous;
            _borders.Color = Color.Black;
        }
    
    0 讨论(0)
  • 2020-12-17 19:05
    For Each range In ranges
        For Each row As Range In .Range(range).Rows
            row.Cells.BorderAround(XlLineStyle.xlContinuous)
            row.Cells.Borders.Item(XlBordersIndex.xlInsideHorizontal).LineStyle = XlLineStyle.xlContinuous
            row.Cells.Borders.Item(XlBordersIndex.xlInsideVertical).LineStyle = XlLineStyle.xlContinuous
        Next
    Next
    
    0 讨论(0)
提交回复
热议问题