Получение и установка стилей ячеек с помощью C++
Cell.GetStyle
и Cell.SetStyle
. В этой статье рассматривается подход Cell.GetStyle
/SetStyle
, чтобы помочь вам определить, какой метод лучше подходит для вас.
Форматирование ячеек
Есть два способа форматирования ячейки, проиллюстрированных ниже.
Использование GetStyle()
В следующем коде создается объект Style
для каждой ячейки при форматировании. Если форматируется много ячеек, будет использовано большое количество памяти, потому что объект Style
является крупным. Эти объекты Style
не освобождаются до вызова метода Workbook.Save
.
C++
cell.GetStyle()->GetFont()->SetIsBold(true);
Использование SetStyle()
Первый подход прост и понятен, почему же мы добавили второй?
Мы добавили второй подход для оптимизации использования памяти. После получения объекта Style
через метод Cell.GetStyle
, его изменяют и применяют обратно методом 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);