为什么这段代码没有设置单元格(Aspose Cells)的背景颜色?

Why does this code not set the background color for a cell (Aspose Cells)?

我需要一个具有淡蓝色背景的单元格;我有在另一个 sheet 中工作的代码,但完全相同的代码(除了 vars 和列索引 val 的名称):

Style styleShipVariance = null;
CellsFactory cfShipVariance = new CellsFactory();
Cell ShipVarianceCell = customerWorksheet.Cells[0, SHIPVARIANCE_COL];
ShipVarianceCell.PutValue("Ship Variance");
styleShipVariance = cfShipVariance.CreateStyle();
styleShipVariance.HorizontalAlignment = TextAlignmentType.Left;
styleShipVariance.Font.Name = fontForSheets;
styleShipVariance.Font.IsBold = true;
styleShipVariance.Font.Size = 11;
styleShipVariance.ForegroundColor = Color.LightBlue;
styleShipVariance.Pattern = BackgroundType.Solid;
ShipVarianceCell.SetStyle(styleShipVariance);

...不适用于另一个 sheet。值 ("Ship Variance") 显示在该单元格中,但未应用颜色。

为什么这行不通?缺少什么?

注意:我也试过添加这个:

var flag = new StyleFlag
{
    CellShading = true,
    FontName = true,
    FontSize = true,
    FontColor = true,
    FontBold = true,
    NumberFormat = true
};

...并将上面的最后一行更改为:

ShipVarianceCell.SetStyle(styleShipVariance, flag);

...但没有任何区别。

更新

我正在保存为 xlsx:

var filename = String.Format(@"{0}\{1} - Fill Rate - {2}.xlsx", sharedFolder, _unit, fromAsYYYYMMDD);
if (File.Exists(filename))
{
    File.Delete(filename);
}
workBook.Save(filename, SaveFormat.Xlsx);

更新 2

我刚刚注意到 val 也没有加粗或左对齐。正在分配文本值本身,但格式的 none 是...

更新 3

为什么有必要,我不知道,但是通过在数据行添加到 sheet 之后添加着色代码,它现在可以工作了。

嗯,正常情况下它应该可以正常工作。但是,如果您要保存到 XLS 文件(而不是 XLSX 文件),则可能不会应用浅蓝色背景色,因此您必须先通过代码行添加到 MS Excel 调色板: 例如 示例代码:

………… workbook.ChangePalette(Color.LightBlue, 55);

无论如何,我们需要您的模板 Excel 文件,以便我们可以准确评估您的问题并测试将颜色应用于我们这边的单元格并适当地指导您。我认为您可以在 Aspose.Cells 论坛中跟进您的 thread

我在 Aspose 担任支持开发人员/传播者。