为单元格获取和设置样式

格式化单元格

有两种格式化单元格的方式,如下所示。

使用 GetStyle()

通过下面的代码片段,在格式化单元格时为每个单元格初始化一个 Style 对象。如果要格式化很多单元格,会消耗大量内存,因为 Style 对象是一个大对象。这些 Style 对象直到调用 Workbook.Save 方法时才会被释放。

C#

cell.GetStyle().Font.IsBold = true;

使用 SetStyle()

第一种方法简单直接,为什么我们还添加了第二种方法?

我们添加了第二种方法以优化内存使用。使用 Cell.GetStyle 方法检索 Style 对象后,修改它并使用 Cell.SetStyle 方法将其设置回该单元格。当不再引用该 Style 对象时,它将不会被保留,.NET GC 会对其进行回收。

调用 Cell.SetStyle 方法时,不会为每个单元格保存 Style 对象。相反,我们将该 Style 对象与内部的 Style 对象池进行比较,查看是否可以重用。每个 Workbook 对象仅保留与现有对象有所不同的 Style 对象。这意味着每个 Excel 文件仅保留了数百个 Style 对象,而不是数千个。对于每个单元格,仅会保留对 Style 对象池的索引。

C#

Style style = cell.GetStyle();

style.Font.IsBold = true;

cell.SetStyle(style);

高级主题