使用 C++ 获取和设置单元格样式
Cell.GetStyle
和 Cell.SetStyle
。本文探讨了这两种方法,帮助你判断哪种技术更适合你。
格式化单元格
有两种格式化单元格的方式,如下所示。
使用 GetStyle()
使用以下代码,为每个单元格格式化时会初始化一个 Style
对象。如果格式化大量单元格,会占用大量内存,因为 Style
对象是一个大型对象。这些 Style
对象在调用 Workbook.Save
方法前不会被释放。
C++
cell.GetStyle()->GetFont()->SetIsBold(true);
使用 SetStyle()
第一种方法简单直观,为什么我们又添加了第二种方法?
我们添加第二种方法是为了优化内存使用。在使用 Cell.GetStyle
方法检索 Style
对象后,修改它并用 Cell.SetStyle
方法将其设置回单元格。这个 Style
对象不会被保留,C++ 运行时会在不引用它时回收
调用 Cell.SetStyle
方法时,Style
对象不会为每个单元格保存。它会将此对象与内部 Style
对象池进行比较,判断是否可以重用。只有与现有对象不同的 Style
才会为每个 Workbook
保留。这意味着每个Excel文件只有几百个 Style
对象,而不是成千上万。每个单元格只保留一个指向 Style
对象池的索引。
C++
auto style = cell.GetStyle();
style->GetFont()->SetIsBold(true);
cell.SetStyle(style);