为单元格获取和设置样式

格式化单元格

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

使用getStyle()

使用以下代码,为每个单元格格式化时会初始化一个Style对象。如果要格式化很多单元格,将会消耗大量内存,因为Style对象较大。这些Style对象在调用Workbook.save方法之前不会被释放。

JavaScript

cell.getStyle().getFont().setIsBold(true);

使用setStyle()

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

我们增加了第二种优化内存的方法。在使用Cell.getStyle方法检索Style对象后,修改它,并使用Cell.setStyle方法将其设置回单元格。这个Style对象不会被保留,当不再被引用时,JavaScript的垃圾收集器会自动回收它。

调用Cell.setStyle方法时,Style对象不会为每个单元格单独保存,而是与内部的Style对象池进行比较,判断是否可以重用。只有与已有不同的Style对象才会被保存到工作簿中。这意味着每个Excel文件只有几百个Style对象,而不是数千个。每个单元格只保存一个指向Style对象池的索引。

JavaScript

let style = cell.getStyle();

style.getFont().setIsBold(true);

cell.setStyle(style);

高级主题