excel cell coloring

前端 未结 6 1788
刺人心
刺人心 2020-12-06 12:06

I am using c# to color particular cells of excel file. I am using:

Application excel = new Application();
Workbook wb = excel.Workbooks.Open(destPath);
 Work         


        
相关标签:
6条回答
  • 2020-12-06 12:11

    Exception from HRESULT: 0x800A03EC

    Solution: Change the misValue to sheet1, sheet2 or sheet3.

    xlWorkBook = xlApp.Workbooks.Add("sheet1"); 
    

    This works for me. system.reflaction.missing.value what was that, it is not related to Excel.workbooks.add came from a Excel file default value. When you create a Excel file, the default worksheets are sheet1, sheet2 and sheet3.

    0 讨论(0)
  • 2020-12-06 12:18

    Cells[row, clmn] is a range so you don't need to call get_Range() and there is a enum that you can use for colors.

    ws.Cells[row, clmn].Interior.Color = XlRgbColor.rgbBlack;
    
    0 讨论(0)
  • 2020-12-06 12:18

    Make sure you are using:

    using Excel = Microsoft.Office.Interop.Excel;
    

    If you have a variable for the range you want to change, then use:

    chartRange = xlWorkSheet.get_Range("a5", "a8");    
    chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black);
    

    If you want to just change the color of a specific cell, then use:

    xlWorkSheet.Cells[row, col].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black);
    

    ...where 'row' is the row number, and 'col' is the column number assigned to the given lettered columns (starting at 1).

    0 讨论(0)
  • 2020-12-06 12:25

    If you want to set color by color index, you need to use this method:

        Cells[row, col].Interior.ColorIndex = 36;
    
    0 讨论(0)
  • 2020-12-06 12:26

    You can color a cell or a entire column or entire row.

    The below code will help you out.

    xlWorkSheet.get_Range(xlWorkSheet.Cells[2, 2], xlWorkSheet.Cells[2, 4]).Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Green);
    

    else

    xlWorkSheet.get_Range(xlWorkSheet.Cells[2, 3], xlWorkSheet.Cells[2, 3]).Interior.Color = Excel.XlRgbColor.rgbRed;
    

    Here xlWorksheet is the object excel Worksheet object.

    get_Range takes 2 variable one start cell and other is end cell.

    so if you specify both the values same then only one cell is colored.

    xlWorkSheet.cells[row, column] is used to specify a cell.

    System.Drawing.ColorTranslator.ToOle(SystemDrawing.Color.Green) is used to define the color in OLE format.

    Excel.XlRgbColor.rgbRed is a excel way of coloring the cells This method gives access to large number of colors which can be found here list of colors

    The below code is the way i defined the excel worksheet.

    Excel.Workbook xlWorkBook;
    Excel.Worksheet xlWorkSheet;
    Excel.Range xlwidthadjust; //used this to adjust width of columns
    object misValue = System.Reflection.Missing.Value;
    
    xlWorkBook = xlApp.Workbooks.Add(misValue);
    xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
    

    with this code i am sure that you wont get this exception Exception from HRESULT: 0x800A03EC

    0 讨论(0)
  • 2020-12-06 12:30

    Try something like that

    ws.Cells[row, clmn].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red)
    
    0 讨论(0)
提交回复
热议问题