Заливка ячеек Excel
COleSafeArray sa;
sa.Create(VT_VARIANT, 2, dwElements);
_Application oApp;
oApp.CreateDispatch("Excel.Application");
if (!oApp)
{
AfxMessageBox("Невозможно запустить Excel.");
return;
}
Workbooks oBooks;
oBooks = oApp.GetWorkbooks();
_Workbook oBook;
oBook = oBooks.Add(vOpt);
Worksheets oSheets;
oSheets = oBook.GetWorksheets();
_Worksheet oSheet;
Range oRange;
Font oFont;
Interior oInterior;
Borders oBorders;
oSheet = oSheets.Add(vOpt,vOpt, COleVariant(long(1)),COleVariant(long(0xffffefb9)));
oSheet.SetName("Рабочий лист");
oSheet.Activate();
oRange = oSheet.GetRange(COleVariant("A1"),COleVariant("M1"));
oInterior = oRange.GetInterior();
oInterior.SetColorIndex(COleVariant((short)2));
Таким образом, я имею возможность задать для определенного диапазона ячеек тип границы, цвет шрифта, заливку и т.п. Сложность вот в чем - дальше я вывожу построчно некий массив и мне нужно отдельные строки "раскрашивать" по разному. Вот пример:
for(lRow=0;lRow<=NumRows-1;lRow++)
{
value_Type=myType.GetAt(lRow);
value_Mark=myMark.GetAt(lRow);
value_Number=myNumber.GetAt(lRow);
value_Weight=myWeight.GetAt(lRow);
value_Layer=myLayer.GetAt(lRow);
value_W=myW.GetAt(lRow);
double dw=atof(value_W);
value_A=myA.GetAt(lRow);
double da=atof(value_A);
value_V=myV.GetAt(lRow);
double dv=atof(value_V);
value_S=myS.GetAt(lRow);
double ds=atof(value_S);
index[0] = lRow;
index[1] = 0;
sa.PutElement(index, (COleVariant)value_Mark);
index[1] = 2;
sa.PutElement(index, (COleVariant)value_Number);
index[1] = 3;
sa.PutElement(index, (COleVariant)value_Layer);
index[1] = 4;
sa.PutElement(index, (COleVariant)value_Weight);
index[1] = 5;
sa.PutElement(index, (COleVariant)value_Type);
index[1] = 6;
sa.PutElement(index, (COleVariant)dw);
index[1] = 7;
sa.PutElement(index, (COleVariant)da);
index[1] = 8;
sa.PutElement(index, (COleVariant)dv);
index[1] = 9;
sa.PutElement(index, (COleVariant)ds);
}
Скажем, нужно, чтобы на lRow=8 цвет строки стал красным, а все остальные остались залиты цветом по умолчанию (определенным выше). Как это можно реализовать? Какой-то ключ ввести можно, но как на ходу интерпретировать цвет заливки? Я же не знаю, в какую именно ячейку в этот момент зашел цикл? Подскажите, пожалуйста, если кто в курсе.