Calc Direct Cell Font Class

Setup

from __future__ import annotations
import uno
from ooodev.calc import CalcDoc
from ooodev.loader import Lo
from ooodev.utils.color import CommonColor

def main() -> int:
    with Lo.Loader(connector=Lo.ConnectSocket()):
        doc = CalcDoc.create_doc(visible=True)
        sheet = doc.sheets[0]
        Lo.delay(500)
        doc.zoom_value(400)

        a1 = sheet["A1"]
        a1.value = "Hello"
        a1.style_font_general(
            b=True, color=CommonColor.DARK_GREEN
        )

        b1 = a1.get_cell_right()
        b1.value = "World"
        b1.style_font_general(
            b=True, u=True, color=CommonColor.DARK_GREEN
        )

        Lo.delay(1_000)
        doc.close()
    return 0

if __name__ == "__main__":
    SystemExit(main())

Examples

Set Text Font

a1 = sheet["A1"]
a1.value = "Hello"
a1.style_font_general(
    b=True, color=CommonColor.DARK_GREEN
)

b1 = a1.get_cell_right()
b1.value = "World"
b1.style_font_general(
    b=True, u=True, color=CommonColor.DARK_GREEN
)
Styled Text

Fig. 344 Styled Text

Set Font based upon values

from ooodev.format.calc.direct.cell.font import Font
import random
# ... other code

num_rng = 5
data = [[random.randint(-100, 100) for _ in range(num_rng)] for _ in range(num_rng)]
sheet.set_array(values=data, name="A1")
rng_obj = sheet.find_used_range_obj()
ft_pos = Font(color=CommonColor.DARK_GREEN, b=True)
ft_neg = ft_pos.fmt_color(CommonColor.DARK_RED).underline
with doc:
    # lock controllers for faster processing and avoid flickering.
    for cell_objs in rng_obj.get_cells():
        for co in cell_objs:
            cell = sheet[co]
            val = cell.get_num()
            if val < 0:
                cell.apply_styles(ft_neg)
            else:
                cell.apply_styles(ft_pos)
Styled Array

Fig. 345 Styled array