我正在使用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;
...给单元格着色,但这不起作用。 任何人都可以帮助我吗?
答案 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
更改为sheet1
,sheet2
或sheet3
。
xlWorkBook = xlApp.Workbooks.Add("sheet1");
这对我有用。 system.reflaction.missing.value
那是什么,它与来自Excel文件默认值的Excel.workbooks.add
无关。
创建Excel文件时,默认工作表为sheet1,sheet2和sheet3。