C# 细胞染色
我正在使用c#为excel文件的特定单元格着色。 我正在使用: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
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
`