【问题标题】:Colour applying to all cells应用于所有单元格的颜色
【发布时间】:2015-02-16 09:30:43
【问题描述】:

我正在尝试将颜色应用于由 Spreadsheet Gear 生成的电子表格中的某些单元格。

我当前的代码

        var workbook = Factory.GetWorkbook();
        var worksheet = workbook.Worksheets["Sheet1"];
        // Set the new worksheet name
        worksheet.Name = "Group export";

        var cells = worksheet.Cells;

        cells[0, 0].Style.Font.Size = 20;

        cells[5, 0].Value = "Default Values";
        cells["A6"].Style.Interior.Color = System.Drawing.Color.FromArgb(166,166,166); //Line 86

但是,在打开电子表格时,我发现字体大小和单元格颜色应用于电子表格中的每个单元格。 “默认值”单元格仅位于正确的单元格中,但是我在工作表中的任何位置应用的任何背景或字体样式都适用于所有单元格。

我为单元格[“A6”].Style.Interior.Color 和单元格[“A5”].Style.Interior.Color 设置了一个监视,并在第 86 行之后设置了一个断点,以确认这是样式发生。

为什么样式会应用于电子表格中的所有单元格?

【问题讨论】:

    标签: c# spreadsheetgear


    【解决方案1】:

    问题是您正在为单元格正在使用的样式设置Interior定义(请参阅IRange.Style.InteriorIStyle接口),而不是直接为单元格本身设置内部(IRange.Interior)。当您在样式级别设置任何属性时,它将影响使用相同样式的所有其他单元格。

    认为“正常”、“坏”、“好”等,可从 Excel 的 功能区 > 主页 > 样式)。默认情况下,所有单元格都使用“普通”样式,因此通过设置IRange.Style.Interior,您可以为所有使用“普通”样式的单元格设置颜色——即工作簿中的所有单元格。

    要设置不影响使用该样式的任何其他单元格的单个单元格颜色,您需要直接在 IRange 下设置 Interior,例如:

    cells[0, 0].Font.Size = 20;
    cells["A6"].Interior.Color = System.Drawing.Color.FromArgb(166,166,166);
    

    【讨论】:

    • SpreadsheetGear.Color.FromArgb 而不是 System.Drawing.Color.FromArgb?
    • System.Drawing.Color 在 SpreadsheetGear 2010 及更早版本中使用。 SpreadsheetGear 2012 将其更改为使用自己的 SpreadsheetGear.Color 结构。在SpreadsheetGear 2012 Breaking Changes 帮助页面中阅读有关此更改的更多信息。 OP 指出 System.Drawing 所以我相应地匹配了我的答案。
    【解决方案2】:

    由于某种原因,访问 Style 部分会导致它将样式应用于整个工作表,而不仅仅是范围。删除“样式”解决了问题

    而不是使用

    cells["A6"].Style.Interior.Color = System.Drawing.Color.FromArgb(166,166,166);
    

    使用

    cells["A6"].Interior.Color = System.Drawing.Color.FromArgb(166,166,166);
    

    正确格式化单元格

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-09
      • 2015-11-29
      • 2015-08-08
      • 2018-02-13
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多