OpenXML无法着色细胞

时间:2017-03-13 23:38:54

标签: c# openxml openxml-sdk

我正在尝试设置细胞样式,我无法使颜色正常工作,我正在使用以下填充:

import

这是我唯一的样式,这是我唯一的填充 - 我将第一行设置为 StyleIndex = 1

此外,对于我制作BackgroundColor的内容或者我完全省略它是不重要的。

从此链接:https://blogs.msdn.microsoft.com/chrisquon/2009/11/30/stylizing-your-excel-worksheets-with-open-xml-2-0/

但问题是我的细胞现在看起来像这样:

bad pattern

你可以看到的不是它应该是灰色的 - 任何想法我错过了什么?谢谢。

1 个答案:

答案 0 :(得分:8)

由于某种原因,我似乎无法找到记录,Fill Id 0将始终为None,而Fill Id 1将始终为Gray125。如果你想要一个自定义填充,你需要至少获得填充Id 2.任何进一步的解释将非常感谢!

            // <Fills>
        Fill fill1 = new Fill(
            new PatternFill(
                new ForegroundColor() { Rgb = new HexBinaryValue() { Value = "DCDCDC" } }
            )
            { PatternType = PatternValues.Solid });

        Fills fills = new Fills(
            new Fill(new PatternFill() { PatternType = PatternValues.None }), //this is what it will be REGARDLESS of what you set it to
            new Fill(new PatternFill() { PatternType = PatternValues.Gray125 }), //this is what it will be REGARDLESS of what you set it to
            fill1);

        // <Borders>
        Border border0 = new Border();     // Default border

        Borders borders = new Borders();    // <APPENDING Borders>
        borders.Append(border0);

        CellFormat _0_default = new CellFormat() { FontId = 0, FillId = 0, BorderId = 0 }; // Default style : Mandatory | Style ID =0
        CellFormat _1_header = new CellFormat() { FontId = 1, FillId = 2, ApplyFill = true }; //HEADER