C# 细胞染色

C# 细胞染色,c#,colors,cell,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; …为单元格着色,但这不起作用。 有人能帮我吗?试试这样的办法 ws.Ce

我正在使用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;
…为单元格着色,但这不起作用。
有人能帮我吗?

试试这样的办法

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

Cells[row,clmn]是一个范围,因此您不需要调用get_range(),并且有一个可以用于颜色的枚举

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

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

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

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

下面的代码将帮助您解决问题

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

此处xlWorksheet是excel工作表对象

get_Range接受两个变量,一个是起始单元格,另一个是结束单元格

因此,如果指定两个值相同,则只有一个单元格是彩色的

xlWorkSheet。单元格[行,列]用于指定单元格

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

Excel.XlRgbColor.rgbreed是一种为细胞着色的Excel方法 这种方法可以访问大量的颜色,可以在这里找到

下面的代码是我定义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获得此异常

解决方案:将
misValue
更改为
sheet1
sheet2
sheet3

xlWorkBook = xlApp.Workbooks.Add("sheet1"); 
这对我有用
system.reflaction.missing.value
这是什么,它与Excel.workbooks.add不相关来自Excel文件的默认值。
创建Excel文件时,默认工作表为sheet1、sheet2和sheet3。

请确保使用:

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);
如果只想更改特定单元格的颜色,请使用:

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开始)。

它给出异常“来自HRESULT的异常:0x800A03EC”它给出异常“来自HRESULT的异常:0x800A03EC”我如何迭代一列并检查每一行?一件可能导致可怕错误的事情“来自HRESULT:0x800A03EC的异常”是指工作表是否受保护。在尝试更改工作表上的任何内容之前,请检查
nWS.ProtectContents
。找不到Interior
`