优秀的细胞着色

时间:2011-05-05 12:39:55

标签: c# colors cell

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

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

彩色单元..但这不起作用.. 它在我为单元格着色的最后一行给出了一个例外

"Exception from HRESULT: 0x800A03EC"

我无法修复异常 任何人都可以帮助我..

3 个答案:

答案 0 :(得分:1)

它可能无效,因为工作表受到保护。

您可以通过以下方式进行检查:

Application excel = new Application();
Workbook wb = excel.Workbooks.Open(destPath);
Worksheet ws = wb.Worksheets[1];

bool wasProtected = ws.ProtectContents;
if (wasProtected == true)
{
    // unprotect the worksheet
}
else
{
    ws.Cells[row, clmn].Interior.Color = XlRgbColor.rgbBlack;
}

...

if (wasProtected == true)
{
    // protect back the worksheet
}

答案 1 :(得分:0)

在我以前的项目中,我使用以下代码片段在Excel中使用Color Cells:

ws.Cells[row, clmn].Interior.Color = System.Drawing.ColorTranslator.ToWin32(Color.Black);

答案 2 :(得分:0)

我在新的Excel文件上测试了你的代码,它运行正常。但是,当测试行值为0时,我能够重现错误。所以问题可能在于行和clmn值。否则它必须是您的Excel文件特有的东西......可能是受保护的单元格或类似的东西。