LibreOffice 25.2 Hjelp
Ved å bruke Basic eller Python programmeringsspråk er det mulig å skrive makroer som bruker formater på celleområder i Calc.
Kodestykket nedenfor oppretter en Sub kalt FormatCellBorder som bruker nye kantformater på en gitt områdeadresse i det gjeldende Calc -arket.
    Sub FormatCellBorder(cellAddress as String, newStyle as Byte, newWidth as Long, Optional newColor as Long)
        'Oppretter UNO -strukturen som lagrer det nye linjeformatet
        Dim lineFormat as New com.sun.star.table.BorderLine2
        lineFormat.LineStyle = newStyle
        lineFormat.LineWidth = newWidth
        If Not IsMissing(newColor) Then lineFormat.Color = newColor
        'Får målcellen
        Dim oCell as Object
        Set oCell = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName(cellAddress)
        'Bruker det nye formatet for alle kantlinjer
        oCell.TopBorder = lineFormat
        oCell.RightBorder = lineFormat
        oCell.LeftBorder = lineFormat
        oCell.BottomBorder = lineFormat
    End Sub
  Sub beskrevet ovenfor inneholder fire argumenter:
cellAddress er en streng som angir området som skal formateres i formatet "A1".
newStyle er et heltall som tilsvarer grenselinjestilen (se Linjestiler nedenfor).
newWidth er en heltallsverdi som definerer linjetykkelsen.
newColor er et heltall som tilsvarer en farge som er definert med funksjonen RGB .
For å anrope FormatCellBorder , opprett en ny makro og send inn de ønskede argumentene, som vist nedenfor:
    Sub MyMacro
        'Gir tilgang til linjestilkonstantene
        Dim cStyle as Object
        Set cStyle = com.sun.star.table.BorderLineStyle
        'Formater "B5" med kompakte blå kanter
        FormatCellBorder("B5", cStyle.SOLID, 20, RGB(0, 0, 255))
        'Formaterer alle kantlinjer i området "D2: F6" med røde prikkete kanter
        FormatCellBorder("D2:F6", cStyle.DOTTED, 20, RGB(255, 0, 0))
    End Sub
  Det er mulig å implementere den samme funksjonaliteten i Python:
    from uno import createUnoStruct
    from scriptforge import CreateScriptService
    
    def formatCellBorder(cellAddress, newStyle, newWidth, newColor=0):
        # Definerer det nye linjeformatet
        line_format = createUnoStruct("com.sun.star.table.BorderLine2")
        line_format.LineStyle = newStyle
        line_format.LineWidth = newWidth
        line_format.Color = newColor
        # Scriptforge -tjeneste for å få tilgang til celleområder
        doc = CreateScriptService("Calc")
        cell = doc.XCellRange(cellAddress)
        cell.TopBorder = line_format
        cell.RightBorder = line_format
        cell.LeftBorder = line_format
        cell.BottomBorder = line_format
  Kodestykket nedenfor implementerer en makro som heter myMacro som anroper formatCellBorder :
    from com.sun.star.table import BorderLineStyle as cStyle
    
    def myMacro():
        bas = CreateScriptService("Basic")
        formatCellBorder("B5", cStyle.SOLID, 20, bas.RGB(0, 0, 255))
        formatCellBorder("D2:F6", cStyle.DOTTED, 20, bas.RGB(255, 0, 0))
  Python -koden som presenteres ovenfor bruker ScriptForge bibllioteket som er tilgjengelig siden LibreOffice 7.2.
Linjestiler er definert som heltallskonstanter. Tabellen nedenfor viser konstantene for linjestilene som er tilgjengelige i :
| Konstantnavn | Heltallsverdi | Linjestilnavn | 
|---|---|---|
| SOLID | 0 | Kompakt | 
| DOTTED | 1 | Prikket | 
| DASHED | 2 | Stiplet | 
| FINE_DASHED | 14 | Finstiplet | 
| DOUBLE_THIN | 15 | Dobbelt tynn | 
| DASH_DOT | 16 | Bindestrekprikk | 
| DASH_DOT_DOT | 17 | Bindestrek prik prikk | 
Referer til BorderLineStyle Konstant referanse i LibreOffice API -dokumentasjonen for å lære mer om linestilkonstanter.
Områdeobjekter har en egenskap som heter TableBorder2 som kan brukes til å formatere områdegrenselinjer slik det gjøres i dialogboksen i Linjearrangement seksjonen.
I tillegg til øvre, nedre, venstre og høyre kant, definerer TableBorder2 også vertikale og horisontale kantlinjer. Makroen nedenfor gjelder bare øvre og nedre kantlinje for området "B2: E5".
    Sub TableBorder2Example
        Dim cStyle as Object
        Set cStyle = com.sun.star.table.BorderLineStyle
        'Definerer det nye linjeformatet
        Dim lineFormat as New com.sun.star.table.BorderLine2
        lineFormat.LineStyle = cStyle.SOLID
        lineFormat.LineWidth = 15
        lineFormat.Color = RGB(0, 0, 0)
        'Struktur som lagrer den nye TableBorder2 -definisjonen
        Dim tableFormat as New com.sun.star.table.TableBorder2
        tableFormat.TopLine = lineFormat
        tableFormat.BottomLine = lineFormat
        tableFormat.IsTopLineValid = True
        tableFormat.IsBottomLineValid = True
        'Bruker tabellformatet for området "B2: E5"
        Dim oCell as Object
        oCell = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("B2:E5")
        oCell.TableBorder2 = tableFormat
    End Sub
  Makroen kan implementeres i Python slik:
    from com.sun.star.table import BorderLineStyle as cStyle
    from scriptforge import CreateScriptService
    
    def tableBorder2Example():
        bas = CreateScriptService("Basic")
        line_format = createUnoStruct("com.sun.star.table.BorderLine2")
        line_format.LineStyle = cStyle.SOLID
        line_format.LineWidth = 18
        line_format.Color = bas.RGB(0, 0, 0)
        table_format = createUnoStruct("com.sun.star.table.TableBorder2")
        table_format.TopLine = line_format
        table_format.BottomLine = line_format
        table_format.IsTopLineValid = True
        table_format.IsBottomLineValid = True
        doc = CreateScriptService("Calc")
        cell = doc.XCellRange("B2:E5")
        cell.TableBorder2 = table_format
  Refer to the TableBorder2 Strukturreferanse i LibreOffice API -dokumentasjonen for å lære mer om attributtene.