отличная окраска клеток - PullRequest
1 голос
/ 05 мая 2011

Я использую 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 ]

1 голос
/ 25 августа 2016

Может не работать, потому что лист защищен.

Вы можете проверить это следующим образом:

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
}
0 голосов
/ 05 мая 2011

Я протестировал код, который у вас есть в новом файле Excel, и он отлично работает. Тем не менее, я смог воспроизвести ошибку при тестировании со значением строки 0. Поэтому, возможно, проблема со значениями строки и clmn. В противном случае это должно быть что-то конкретное для вашего файла Excel ... может быть, защищенная ячейка или что-то в этом роде.

0 голосов
/ 05 мая 2011

В моем предыдущем проекте я использовал следующий фрагмент для Color Cells в Excel:

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