Hämta och sätt stil för celler med C++

Formatering av celler

Det finns två sätt att formatera en cell, som illustreras nedan.

Användning av GetStyle()

Med följande kodstycke initieras ett Style-objekt för varje cell vid formatering. Om många celler formateras används mycket minne eftersom Style-objektet är stort. Dessa Style-objekt frigörs inte förrän Workbook.Save-metoden anropas.

C++

cell.GetStyle()->GetFont()->SetIsBold(true);

Användning av SetStyle()

Det första tillvägagångssättet är enkelt och tydligt, så varför lade vi till det andra?

Vi lade till det andra tillvägagångssättet för att optimera minnesanvändningen. Efter att ha hämtat ett Style-objekt med Cell.GetStyle, ändra det och använd Cell.SetStyle för att tilldela det tillbaka till denna cell. Detta Style-objekt kommer inte att bevaras, och C++-körningen kommer att samla in det när det inte längre refereras.

När du anropar Cell.SetStyle-metoden sparas inte Style-objektet för varje cell. Istället jämförs detta Style-objekt med en intern Style-pool för att se om det kan återanvändas. Endast Style-objekt som skiljer sig från de befintliga sparas för varje Workbook. Detta innebär att det endast finns några hundra Style-objekt per Excel-fil istället för tusentals. För varje cell sparas endast en index till Style-poolen.

C++

auto style = cell.GetStyle();
style->GetFont()->SetIsBold(true);
cell.SetStyle(style);

Avancerade ämnen