为单元格获取和设置样式
格式化单元格
有两种格式化单元格的方式,如下所示。
使用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);