Почему установка цвета для ячейки не работает (Aspose Cells)?

У меня есть этот код, чтобы попытаться установить цвет фона ячейки (среди прочего):

private static readonly Color CONTRACT_ITEM_COLOR = Color.FromArgb(255, 255, 204);
. . .
cell = pivotTableSheet.Cells[4, 0];
cell.PutValue(AnnualContractProductsLabel);
style = cell.GetStyle();
style.HorizontalAlignment = TextAlignmentType.Center;
style.VerticalAlignment = TextAlignmentType.Center;
style.Font.IsBold = true;
pivotTableSheet.Cells.SetRowHeight(4, 25);
style.BackgroundColor = CONTRACT_ITEM_COLOR;
pivotTableSheet.Cells[4, 0].SetStyle(style);

Работают настройки горизонтального и вертикального выравнивания, жирного шрифта и высоты — все, кроме цвета:

введите здесь описание изображения

Что еще нужно? Я даже пытался установить ForegroundColor, а также цвета фона:

style.ForegroundColor = Color.Red;
style.BackgroundColor = Color.Blue;

... но ничего не делает - ячейка по-прежнему выглядит точно так же, как на скриншоте выше.


person B. Clay Shannon    schedule 23.11.2016    source источник


Ответы (2)


Измените сегмент кода на (см. выделенные строки): например, Пример кода:

. . .
cell = pivotTableSheet.Cells[4, 0];
cell.PutValue(AnnualContractProductsLabel);
style = cell.GetStyle();
style.HorizontalAlignment = TextAlignmentType.Center;
style.VerticalAlignment = TextAlignmentType.Center;
style.Font.IsBold = true;
pivotTableSheet.Cells.SetRowHeight(4, 25);
**style.ForegroundColor = CONTRACT_ITEM_COLOR;
style.Pattern = BackgroundType.Solid;**
pivotTableSheet.Cells[4, 0].SetStyle(style);

..........

он должен работать нормально.

Я работаю разработчиком поддержки / евангелистом в Aspose.

person Amjad Sahi    schedule 24.11.2016

Иногда настройка фона работает, иногда нет. Aspose полон ошибок — ClosedXML намного надежнее, но сложнее в использовании. Жаль, что я не тратил деньги на продукт, который был разработан третьей стороной в стране третьего мира.

var cells = worksheet.Cells;     //get cells collection from active worksheet <br>
var srcCells = workbook.Worksheets[1].Cells;<br>

for (int i = 0; i<rowCount; i++)<br>
{<br>
    var srcStyle = srcCells[i, 0].GetStyle();<br>
    var destStyle = cells[i, 0].GetStyle();<br>
    destStyle.Pattern = BackgroundType.Solid;<br>
    destStyle.ForegroundColor = Color.FromArgb(srcStyle.ForegroundArgbColor);<br>
    cells[i, 0].SetStyle(destStyle);<br>
}<br>

Код выше не работает. srcStyle Цвет переднего плана argb — 170 215 255.
Код отладки destStyle ForegroundColor имеет значение 170 215 255, но при сохранении в формате xlsx фон всех ячеек белый.

В коде ClosedXML отлично работает следующий код

worksheet.Row(i).Cell(0).Style.BackgroundColor = Color.FromArgb(argb)

Вывод: сэкономьте $$$$$ и используйте ClosedXML

person OldGeek    schedule 12.09.2019
comment
Сначала нам нужно оценить файл. OldGeek, не могли бы вы поделиться своим образцом файла, мы можем его проверить. Вы можете загрузить образец файла в Dropbox или Google Drive и т. д. и поделиться ссылкой для скачивания. PS. Я работаю разработчиком поддержки / евангелистом в Aspose - person Amjad Sahi; 12.09.2019