优秀的细胞着色

时间:2011-05-05 11:40:17

标签: c# colors cell

我正在使用c#为excel文件的特定单元格着色。 我正在使用:

Application excel = new Application();
Workbook wb = excel.Workbooks.Open(destPath);
 Worksheet ws = wb.Worksheets[1];
 ws.get_Range(ws.Cells[row, clmn]).Cells.Interior.Color = 36;

...给单元格着色,但这不起作用。 任何人都可以帮助我吗?

6 个答案:

答案 0 :(得分:14)

尝试类似的东西

ws.Cells[row, clmn].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red)

答案 1 :(得分:6)

Cells [row,clmn]是一个范围,所以你不需要调用get_Range(),并且有一个可用于颜色的枚举。

ws.Cells[row, clmn].Interior.Color = XlRgbColor.rgbBlack;

答案 2 :(得分:4)

如果要按颜色索引设置颜色,则需要使用此方法:

    Cells[row, col].Interior.ColorIndex = 36;

答案 3 :(得分:1)

您可以为单元格或整列或整行着色。

以下代码可以帮助您。

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

否则

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

此处 xlWorksheet 是对象excel Worksheet对象。

get_Range 需要2个变量一个起始单元格而另一个是结束单元格。

因此,如果您指定两个值相同,则只有一个单元格被着色。

xlWorkSheet.cells [row,column] 用于指定单元格。

System.Drawing.ColorTranslator.ToOle(SystemDrawing.Color.Green)用于以OLE格式定义颜色。

Excel.XlRgbColor.rgbRed 是一种着色细胞的卓越方式 此方法可以访问大量颜色,可在此处找到list of colors

以下代码是我定义excel工作表的方式。

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);

使用此代码我相信你不会得到这个异常来自HRESULT的异常:0x800A03EC

答案 4 :(得分:1)

确保您正在使用:

using Excel = Microsoft.Office.Interop.Excel;

如果您想要更改范围的变量,请使用:

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

如果您只想更改特定单元格的颜色,请使用:

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

...其中'row'是行号,'col'是分配给给定字母列的列号(从1开始)。

答案 5 :(得分:-1)

Exception from HRESULT: 0x800A03EC

解决方案:将misValue更改为sheet1sheet2sheet3

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

这对我有用。 system.reflaction.missing.value那是什么,它与来自Excel文件默认值的Excel.workbooks.add无关。 创建Excel文件时,默认工作表为sheet1,sheet2和sheet3。