Υπηρεσία SFDocuments.Calc

Η κοινόχρηστη βιβλιοθήκη SFDocuments παρέχει έναν αριθμό μεθόδων και ιδιοτήτων για τη διευκόλυνση της διαχείρισης και του χειρισμού των εγγράφων του LibreOffice.

Η υπηρεσία SFDocuments.Calc είναι μια υποκατηγορία της υπηρεσίας SFDocuments.Document . Όλες οι μέθοδοι και οι ιδιότητες που ορίζονται για την υπηρεσία Document μπορούν επίσης να προσπελαστούν χρησιμοποιώντας μια παρουσία υπηρεσίας Calc.

Η υπηρεσία Calc επικεντρώνεται σε:

note

Αυτή η σελίδα βοήθειας περιγράφει μεθόδους και ιδιότητες που ισχύουν μόνο για έγγραφα Calc.


Κλήση υπηρεσίας

Πριν τη χρήση της υπηρεσίας Calc, πρέπει να φορτωθεί ή να εισαχθεί η βιβλιοθήκη ScriptForge:

note

• Οι μακροεντολές Basic απαιτούν τη φόρτωση της βιβλιοθήκης ScriptForge χρησιμοποιώντας την ακόλουθη πρόταση:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Τα σενάρια Python απαιτούν εισαγωγή από την ενότητα scriptforge:
από το scriptforge import CreateScriptService


Η υπηρεσία Calc σχετίζεται στενά με την υπηρεσία UI της βιβλιοθήκης ScriptForge. Παρακάτω είναι μερικά παραδείγματα για το πώς μπορεί να κληθεί η υπηρεσία Calc.

Σε Basic

Το παρακάτω απόσπασμα κώδικα δημιουργεί μια παρουσία υπηρεσίας Calc που αντιστοιχεί στο τρέχον ενεργό έγγραφο Calc.


    Set oDoc = CreateScriptService("Calc")
  

Ένας άλλος τρόπος για να δημιουργήσετε μια παρουσία της υπηρεσίας Calc είναι η χρήση της υπηρεσίας UI. Στο παρακάτω παράδειγμα, δημιουργείται ένα νέο έγγραφο Calc και το oDoc είναι μια παρουσία υπηρεσίας Calc:


    Dim ui As Object, oDoc As Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateDocument("Calc")
  

Ή χρησιμοποιώντας τη μέθοδο OpenDocument από την υπηρεσία UI:


    Set oDoc = ui.OpenDocument("C:\Documents\MyFile.ods")
  

Είναι επίσης δυνατό να δημιουργηθεί η υπηρεσία Calc καθορίζοντας ένα όνομα παραθύρου για τη μέθοδο CreateScriptService:


    Dim oDoc As Object
    Set oDoc = CreateScriptService("SFDocuments.Calc", "MyFile.ods")
  

Στο παραπάνω παράδειγμα, το "MyFile.ods" είναι το όνομα ενός ανοιχτού παραθύρου εγγράφου. Εάν αυτό το όρισμα δεν παρέχεται, εξετάζεται το ενεργό παράθυρο.

Είναι επίσης δυνατή η κλήση της υπηρεσίας Calc χρησιμοποιώντας το έγγραφο που αναφέρεται από το ThisComponent. Αυτό είναι ιδιαίτερα χρήσιμο όταν εκτελείτε μια μακροεντολή μέσα από το IDE της Basic.


    Dim oDoc As Object
    Set oDoc = CreateScriptService("Calc", ThisComponent)
  

Συνιστάται η απελευθέρωση πόρων μετά τη χρήση:


    Set oDoc = oDoc.Dispose()
  

Ωστόσο, εάν το έγγραφο έκλεισε χρησιμοποιώντας τη μέθοδο CloseDocument, δεν είναι απαραίτητο να απελευθερωθούν πόροι χρησιμοποιώντας την εντολή που περιγράφεται παραπάνω.

Σε Python

    myDoc = CreateScriptService("Calc")
  

    ui = CreateScriptService("UI")
    myDoc = ui.CreateDocument("Calc")
  

    myDoc = ui.OpenDocument(r"C:\Documents\MyFile.ods")
  

    myDoc = CreateScriptService("SFDocuments.Calc", "MyFile.ods")
    myDoc.Dispose()
  

    bas = CreateScriptService("Basic")
    myDoc = CreateScriptService("Calc", bas.ThisComponent)
  
tip

Η χρήση του προθέματος "SFDocuments." κατά την κλήση της υπηρεσίας είναι προαιρετική.


Ορισμοί

Πολλές μέθοδοι απαιτούν ένα "Sheet" (Φύλλο) ή ένα "Range" (Εύρος) ως όρισμα. Τα μεμονωμένα κελιά θεωρούνται ειδική περίπτωση Range.

Και τα δύο μπορούν να εκφραστούν είτε ως συμβολοσειρά είτε ως αναφορά (= αντικείμενο) ανάλογα με την κατάσταση:

Παράδειγμα:

Το παρακάτω παράδειγμα αντιγράφει δεδομένα από το έγγραφο Α (ανοιχτό ως μόνο για ανάγνωση και κρυφό) στο έγγραφο Β.

Σε Basic

    Dim oDocA As Object, oDocB As Object
    Set oDocA = ui.OpenDocument("C:\Documents\FileA.ods", Hidden := True, ReadOnly := True)
    Set oDocB = ui.OpenDocument("C:\Documents\FileB.ods")
    oDocB.CopyToRange(oDocA.Range("SheetX.D4:F8"), "D2:F6") 'CopyToRange(source, target)
  
Σε Python

    docA = ui.OpenDocument(r"C:\Documents\FileA.ods", hidden = True, readonly = True)
    docB = ui.OpenDocument(r"C:\Documents\FileB.ods")
    docB.CopyToRange(docA.Range("SheetX.D4:F8"), "D2:F6")
  

SheetName

Είτε το όνομα του φύλλου ως string είτε ως αντικείμενο που παράγεται από την ιδιότητα .Sheet.

Η συντόμευση "~" (tilde) αντιπροσωπεύει το τρέχον φύλλο.

RangeName

Είτε μια συμβολοσειρά που δηλώνει ένα σύνολο συνεχόμενων κελιών που βρίσκονται σε ένα φύλλο της τρέχουσας παρουσίας είτε ένα object (αντικείμενο) που παράγεται από την ιδιότητα .Range.

Η συντόμευση "~" (tilde) αντιπροσωπεύει την τρέχουσα επιλογή ή το πρώτο επιλεγμένο εύρος εάν έχουν επιλεγεί πολλαπλές περιοχές.

Η συντόμευση "*" αντιπροσωπεύει όλα τα χρησιμοποιημένα κελιά.

Το όνομα του φύλλου είναι προαιρετικό όταν ορίζετε μια περιοχή. Εάν δεν παρέχεται όνομα φύλλου, τότε χρησιμοποιείται το ενεργό φύλλο. Τα γύρω μεμονωμένα εισαγωγικά και τα σημάδια $ επιτρέπονται αλλά αγνοούνται.

Κατά τον καθορισμό ενός SheetName ως συμβολοσειράς, απαιτείται η χρήση μεμονωμένων εισαγωγικών για να περικλείεται το όνομα του φύλλου, εάν το όνομα περιέχει κενά " " ή τελείες ".".

Τα παρακάτω παραδείγματα δείχνουν σε ποιες περιπτώσεις είναι υποχρεωτική η χρήση μεμονωμένων εισαγωγικών:


      ' Η χρήση μονών εισαγωγικών είναι προαιρετική
      oDoc.clearAll("SheetA.A1:B10")
      oDoc.clearAll("'SheetA'.A1:B10")
      ' Απαιτείται η χρήση μονών εισαγωγικών
      oDoc.clearAll("'Sheet.A'.A1:B10")
    
tip

Εκτός από την ιδιότητα CurrentSelection, η υπηρεσία Calc λαμβάνει υπόψη μόνο μεμονωμένες περιοχές κελιών.


Παραδείγματα έγκυρων περιοχών

1) $'SheetX'.D2
2) $D$2

Ένα μόνο κελί

1) $'SheetX'.D2:F6
2) D2:D10

Ενιαία περιοχή με πολλαπλά κελιά

$'SheetX'.*

Όλα τα κελιά που χρησιμοποιήθηκαν στο συγκεκριμένο φύλλο

1) $'SheetX'.A:A (στήλη A)
2) 3:5 (σειρές 3 έως 5)

Όλα τα κελιά σε συνεχόμενες στήλες ή σειρές μέχρι το τελευταίο κελί που χρησιμοποιήθηκε

myRange (περιοχή_μου)

Μια περιοχή με το όνομα "myRange" (περιοχή_μου) σε επίπεδο υπολογιστικού φύλλου

1) ~.someRange
2) SheetX.someRange

Ένα όνομα περιοχής σε επίπεδο φύλλου

myDoc.Range("SheetX.D2:F6")

Μια περιοχή εντός του φύλλου SheetX στο αρχείο που σχετίζεται με την παρουσία myDoc Calc

~.~ ή ~

Η τρέχουσα επιλογή στο ενεργό φύλλο


Ιδιότητες

Όλες οι ιδιότητες που είναι γενικές σε οποιοδήποτε έγγραφο ισχύουν έμμεσα και για έγγραφα Calc. Για περισσότερες πληροφορίες, διαβάστε τη σελίδα βοήθειας της υπηρεσίας εγγράφων.

Οι ιδιότητες που είναι ειδικά διαθέσιμες για έγγραφα Calc είναι:

Όνομα

Μόνο για ανάγνωση

Όρισμα

Τύπος επιστροφής

Περιγραφή

CurrentSelection

Όχι

Καμία

Συμβολοσειρά ή πίνακας συμβολοσειρών

Η μεμονωμένη επιλεγμένη περιοχή ως συμβολοσειρά ή κατάλογος των επιλεγμένων περιοχών ως πίνακας.

FirstCell

Ναι

SheetName ή RangeName ως String (συμβολοσειρά)

String

Επιστρέφει το πρώτο κελί που χρησιμοποιήθηκε σε μια δεδομένη περιοχή ή φύλλο.

FirstColumn

Ναι

SheetName ή RangeName ως String (συμβολοσειρά)

Long

Επιστρέφει τον πιο αριστερό αριθμό στήλης σε μια δεδομένη περιοχή ή φύλλο.

FirstRow

Ναι

SheetName ή RangeName ως String (συμβολοσειρά)

Long

Επιστρέφει τον κορυφαίο αριθμό σειράς σε μια δεδομένη περιοχή ή φύλλο.

Height

Ναι

RangeName ως συμβολοσειρά

Long

Ο αριθμός των σειρών (>= 1) στη δεδομένη περιοχή.

LastCell

Ναι

SheetName ή RangeName ως String (συμβολοσειρά)

String

Επιστρέφει το τελευταίο κελί που χρησιμοποιήθηκε σε μια δεδομένη περιοχή ή φύλλο.

LastColumn

Ναι

SheetName ή RangeName ως String (συμβολοσειρά)

Long

Η τελευταία χρησιμοποιούμενη στήλη σε μια δεδομένη περιοχή ή φύλλο.

LastRow

Ναι

SheetName ή RangeName ως String (συμβολοσειρά)

Long

Η τελευταία χρησιμοποιημένη σειρά σε μια δεδομένη περιοχή ή φύλλο.

Range

Ναι

RangeName ως συμβολοσειρά

Object

Μια αναφορά περιοχής που μπορεί να χρησιμοποιηθεί ως όρισμα μεθόδων όπως CopyToRange.

Region

Ναι

RangeName ως συμβολοσειρά

String

Επιστρέφει τη διεύθυνση της μικρότερης περιοχής που περιέχει την καθορισμένη περιοχή, έτσι ώστε η περιοχή να περιβάλλεται από κενά κελιά ή άκρες φύλλων. Αυτό ισοδυναμεί με την εφαρμογή της συντόμευσης στη δεδομένη περιοχή.

Sheet

Ναι

SheetName ως String (συμβολοσειρά)

Object

Μια αναφορά φύλλου που μπορεί να χρησιμοποιηθεί ως όρισμα μεθόδων όπως CopySheet.

SheetName

Ναι

RangeName ως συμβολοσειρά

String

Επιστρέφει το όνομα φύλλου μιας δεδομένης διεύθυνσης περιοχής.

Sheets

Ναι

Καμία

Πίνακας συμβολοσειρών

Ο κατάλογος με τα ονόματα όλων των υπαρχόντων φύλλων.

Width

Ναι

RangeName ως συμβολοσειρά

Long

Ο αριθμός των στηλών (>= 1) στη δεδομένη περιοχή.

XCellRange

Ναι

RangeName ως συμβολοσειρά

Object

Ένα αντικείμενο UNO com.sun.star.Table.XCellRange.

XSheetCellCursor

Ναι

RangeName ως συμβολοσειρά

Object

Ένα αντικείμενο UNO com.sun.star.sheet.XSheetCellCursor. Μετά τη μετακίνηση του δρομέα, η προκύπτουσα διεύθυνση περιοχής μπορεί να προσπελαστεί μέσω της ιδιότητας UNO AbsoluteName του αντικειμένου του δρομέα, η οποία επιστρέφει μια τιμή συμβολοσειράς που μπορεί να χρησιμοποιηθεί ως όρισμα για ιδιότητες και μεθόδους της υπηρεσίας Calc.

XSpreadsheet

Ναι

SheetName ως String (συμβολοσειρά)

Object

Ένα αντικείεμενο UNO com.sun.star.sheet.XSpreadsheet.


tip

Επισκεφτείτε τον ιστότοπο της τεκμηρίωσης του API LibreOffice για να μάθετε περισσότερα σχετικά με τα αντικείμενα UNO XCellRange, XSheetCellCursor and XSpreadsheet.


Μέθοδοι

Κατάλογος μεθόδων στην υπηρεσία Calc

A1Style
Activate
Charts
ClearAll
ClearFormats
ClearValues
CompactLeft
CompactUp
CopySheet
CopySheetFromFile
CopyToCell
CopyToRange
CreateChart
CreatePivotTable
DAvg
DCount

DMax
DMin
DSum
ExportRangeToFile
Forms
GetColumnName
GetFormula
GetValue
ImportFromCSVFile
ImportFromDatabase
ImportStylesFromFile
InsertSheet
MoveRange
MoveSheet
Offset
OpenRangeSelector

PrintOut
Printf
RemoveDuplicates
RemoveSheet
RenameSheet
SetArray
SetCellStyle
SetFormula
SetValue
ShiftDown
ShiftLeft
ShiftRight
ShiftUp
SortRange



A1Style

Επιστρέφει μια διεύθυνση περιοχής ως συμβολοσειρά με βάση τις συντεταγμένες του φύλλου, δηλαδή αριθμούς σειρών και στηλών.

Εάν δίνεται μόνο ένα ζεύγος συντεταγμένων, τότε επιστρέφεται μια διεύθυνση σε ένα μόνο κελί. Πρόσθετα ορίσματα μπορούν να καθορίσουν το κάτω δεξιό κελί μιας ορθογώνιας περιοχής.

Σύνταξη:

svc.A1Style(row1: int, column1: int, row2: int = 0; column2: int = 0; sheetname: str = "~"): str

Παράμετροι:

row1, column1 (σειρά1, στήλη 1): Καθορίστε τους αριθμούς σειρών και στηλών του κελιού επάνω αριστερά στην περιοχή που θα ληφθεί υπόψη. Οι αριθμοί σειρών και στηλών ξεκινούν από το 1.

row2, column2 (σειρά2, στήλη2): Καθορίστε τους αριθμούς σειρών και στηλών του κάτω δεξιού κελιού στην περιοχή που θα ληφθεί υπόψη. Εάν αυτά τα ορίσματα δεν παρέχονται ή εάν δίνονται τιμές μικρότερες από row1 και column1, τότε επιστρέφεται η διεύθυνση της περιοχής ενός κελιού που αντιπροσωπεύεται από row1 και column1.

sheetname (όνομα φύλλου): Το όνομα του φύλλου που θα προστεθεί στη διεύθυνση περιοχής που επιστρέφεται. Το φύλλο πρέπει να υπάρχει. Η προεπιλεγμένη τιμή είναι "~" που αντιστοιχεί στο τρέχον ενεργό φύλλο.

Παράδειγμα:

Τα παρακάτω παραδείγματα σε Basic και Python θεωρούν ότι το "Sheet1" είναι το τρέχον ενεργό φύλλο.

Σε Basic

    Set oDoc = CreateScriptService("Calc")
    addr1 = oDoc.A1Style(1, 1) ' '$Sheet1'.$A$1
    addr2 = oDoc.A1Style(2, 2, 3, 6) ' '$Sheet1'.$B$2:$F$3
    addr3 = oDoc.A1Style(2, 2, 0, 6) ' '$Sheet1'.$B$2
    addr4 = oDoc.A1Style(3, 4, 3, 8, "Sheet2") ' '$Sheet2'.$D$3:$H$3
    addr5 = oDoc.A1Style(5, 1, SheetName := "Sheet3") ' '$Sheet3'.$A$5
  
Σε Python

    doc = CreateScriptService("Calc")
    addr1 = doc.A1Style(1, 1) # '$Sheet1'.$A$1
    addr2 = doc.A1Style(2, 2, 3, 6) # '$Sheet1'.$B$2:$F$3
    addr3 = doc.A1Style(2, 2, 0, 6) # '$Sheet1'.$B$2
    addr4 = doc.A1Style(3, 4, 3, 8, "Sheet2") # '$Sheet2'.$D$3:$H$3
    addr5 = doc.A1Style(5, 1, sheetname="Sheet3") # '$Sheet3'.$A$5
  
tip

Η μέθοδος A1Style μπορεί να συνδυαστεί με οποιαδήποτε από τις πολλές ιδιότητες και μεθόδους της υπηρεσίας Calc που απαιτούν μια περιοχή ως όρισμα, όπως GetValue, GetFormula, ClearAll, κ.λπ.


Activate

Εάν παρέχεται το όρισμα sheetname, το δεδομένο φύλλο ενεργοποιείται και γίνεται το τρέχον επιλεγμένο φύλλο. Εάν το όρισμα απουσιάζει, τότε ενεργοποιείται το παράθυρο του εγγράφου.

Σύνταξη:

svc.Activate(sheetname: str = ""): bool

Παράμετροι:

sheetname (όνομα φύλλου): Το όνομα του φύλλου που θα ενεργοποιηθεί στο έγγραφο. Η προεπιλεγμένη τιμή είναι μια κενή συμβολοσειρά, που σημαίνει ότι το παράθυρο του εγγράφου θα ενεργοποιηθεί χωρίς να αλλάξει το ενεργό φύλλο.

Παράδειγμα:

Το παρακάτω παράδειγμα ενεργοποιεί το φύλλο με το όνομα "Sheet4" στο τρέχον ενεργό έγγραφο.

Σε Basic

    Dim ui as Variant, oDoc as Object
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.GetDocument(ui.ActiveWindow)
    oDoc.Activate("Sheet4")
  
Σε Python

    ui = CreateScriptService("UI")
    myDoc = ui.GetDocument(ui.ActiveWindow)
    myDoc.Activate("Sheet4")
  
tip

Η ενεργοποίηση ενός φύλλου έχει νόημα μόνο εάν εκτελείται σε έγγραφο Calc. Για να βεβαιωθείτε ότι έχετε διαθέσιμο ένα έγγραφο Calc, μπορείτε να χρησιμοποιήσετε την ιδιότητα isCalc του αντικειμένου του εγγράφου, η οποία επιστρέφει True εάν είναι έγγραφο Calc και False αλλιώς.


Charts

Επιστρέφει είτε τον κατάλογο με τα ονόματα όλων των αντικειμένων γραφήματος σε ένα δεδομένο φύλλο είτε μια μεμονωμένη παρουσία υπηρεσίας Chart.

Σύνταξη:

svc.Charts(sheetname: str, chartname: str = ""): obj

Παράμετροι:

sheetname (όνομα φύλλου): Το όνομα του φύλλου από το οποίο πρόκειται να ανακτηθεί ο κατάλογος των γραφημάτων ή όπου βρίσκεται το καθορισμένο γράφημα.

chartname (όνομα γραφήματος): Το όνομα που ορίζεται από τον χρήστη του αντικειμένου του γραφήματος που θα επιστραφεί. Εάν το γράφημα δεν έχει όνομα χρήστη, τότε μπορεί να χρησιμοποιηθεί το όνομα του εσωτερικού αντικειμένου. Εάν αυτό το όρισμα απουσιάζει, τότε επιστρέφεται ο κατάλογος με τα ονόματα γραφημάτων στο καθορισμένο φύλλο.

tip

Χρησιμοποιήστε την πλευρική γραμμή Πλοήγηση για να ελέγξετε τα ονόματα που έχουν εκχωρηθεί σε γραφήματα στην κατηγορία αντικείμενα OLE.


Παράδειγμα:

Σε Basic

Το παρακάτω παράδειγμα δείχνει τον αριθμό των αντικειμένων γραφήματος στο "Φύλλο1".


    Dim arrNames as Object
    arrNames = oDoc.Charts("Sheet1")
    MsgBox "There are " & UBound(arrNames) + 1 & " charts in Sheet1"
  

Το παρακάτω παράδειγμα έχει πρόσβαση στο γράφημα με το όνομα "MyChart" στο "Φύλλο1" και εκτυπώνει τον τύπο του.


    Dim oChart as Object
    oChart = oDoc.Charts("Sheet1", "MyChart")
    MsgBox oChart.ChartType
  
Σε Python

    bas = CreateScriptService("Basic")
    chart_names = doc.Charts("Sheet1")
    bas.MsgBox(f"There are {len(chart_names)} charts in Sheet1")
  

    chart = doc.Charts("Sheet1", "MyChart")
    bas.MsgBox(chart.ChartType)
  

ClearAll

Διαγράφει όλα τα περιεχόμενα και τις μορφές της δεδομένης περιοχής.

Ένας τύπος φίλτρου μπορεί να καθοριστεί για να προσδιοριστεί ποια κελιά θα επηρεαστούν.

Σύνταξη:

svc.ClearAll(range: str, opt filterformula: str, opt filterscope: str)

Παράμετροι:

range: Το εύρος που θα διαγραφεί, ως συμβολοσειρά.

filterformula: Ένας τύπος Calc που θα εφαρμοστεί στο δεδομένο εύρος για να προσδιοριστεί ποια κελιά θα επηρεαστούν. Ο καθορισμένος τύπος πρέπει να επιστρέψει True, ή False. Εάν αυτό το όρισμα δεν έχει καθοριστεί, τότε επηρεάζονται όλα τα κελιά της περιοχής.

filterscope: Καθορίζει τον τρόπο επέκτασης του filterformula στο δεδομένο εύρος. Αυτό το όρισμα είναι υποχρεωτικό εάν έχει καθοριστεί ο filterformula. Γίνονται αποδεκτές οι ακόλουθες τιμές:

Παράδειγμα:

Σε Basic

    ' Διαγράφει όλα τα κελιά στην περιοχή SheetX.A1:J10
    oDoc.ClearAll("SheetX.A1:J10")
    ' Διαγράφει όλα τα κελιά στην περιοχή SheetX.A1:J10 που έχουν τιμή μεγαλύτερη από 100
    oDoc.ClearAll("SheetX.A1:J10", "=SheetX.A1>100", "CELL")
    ' Διαγράφει όλες τις σειρές στην περιοχή SheetX.A1:J10 των οποίων το άθροισμα είναι μεγαλύτερο από 500
    oDoc.ClearAll("SheetX.A1:J10", "=SUM(SheetX.A1:J1)>100", "ROW")
    ' Διαγράφει όλες τις στήλες στην περιοχή SheetX.A1:J10 των οποίων το άθροισμα είναι μεγαλύτερο από 500
    oDoc.ClearAll("SheetX.A1:J10", "=SUM(SheetX.A1:A10)>100", "COLUMN")
  
Σε Python

    myDoc.ClearAll("SheetX.A1:F10")
    myDoc.ClearAll("SheetX.A1:J10", "=SheetX.A1>100", "CELL")
    myDoc.ClearAll("SheetX.A1:J10", "=SUM(SheetX.A1:J1)>100", "ROW")
    myDoc.ClearAll("SheetX.A1:J10", "=SUM(SheetX.A1:A10)>100", "COLUMN")
  

ClearFormats

Διαγράφει τις μορφές και τις τεχνοτροπίες στη δεδομένη περιοχή.

Ένας τύπος φίλτρου μπορεί να καθοριστεί για να προσδιοριστεί ποια κελιά θα επηρεαστούν.

Σύνταξη:

svc.ClearFormats(range: str, opt filterformula: str, opt filterscope: str)

Παράμετροι:

range (περιοχή0: η περιοχή της οποίας οι μορφές και οι τεχνοτροπίες πρέπει να διαγραφούν, ως συμβολοσειρά.

filterformula: Ένας τύπος Calc που θα εφαρμοστεί στο δεδομένο εύρος για να προσδιοριστεί ποια κελιά θα επηρεαστούν. Ο καθορισμένος τύπος πρέπει να επιστρέψει True, ή False. Εάν αυτό το όρισμα δεν έχει καθοριστεί, τότε επηρεάζονται όλα τα κελιά της περιοχής.

filterscope: Καθορίζει τον τρόπο επέκτασης του filterformula στο δεδομένο εύρος. Αυτό το όρισμα είναι υποχρεωτικό εάν έχει καθοριστεί ο filterformula. Γίνονται αποδεκτές οι ακόλουθες τιμές:

Παράδειγμα:

Σε Basic

      oDoc.ClearFormats("SheetX.*")
  
Σε Python

    myDoc.ClearFormats("SheetX.*")
  
tip

Ανατρέξτε στην τεκμηρίωση της μεθόδου ClearAll για παραδείγματα σχετικά με τον τρόπο χρήσης των ορισμάτων filterformula και filterscope.


ClearValues

Διαγράφει τις τιμές και τους τύπους στη δεδομένη περιοχή.

Ένας τύπος φίλτρου μπορεί να καθοριστεί για να προσδιοριστεί ποια κελιά θα επηρεαστούν.

Σύνταξη:

svc.ClearValues(range: str, opt filterformula: str, opt filterscope: str)

Παράμετροι:

range (περιοχή): Η περιοχή της οποίας οι τιμές και οι τύποι πρέπει να διαγραφούν, ως συμβολοσειρά.

filterformula: Ένας τύπος Calc που θα εφαρμοστεί στο δεδομένο εύρος για να προσδιοριστεί ποια κελιά θα επηρεαστούν. Ο καθορισμένος τύπος πρέπει να επιστρέψει True, ή False. Εάν αυτό το όρισμα δεν έχει καθοριστεί, τότε επηρεάζονται όλα τα κελιά της περιοχής.

filterscope: Καθορίζει τον τρόπο επέκτασης του filterformula στο δεδομένο εύρος. Αυτό το όρισμα είναι υποχρεωτικό εάν έχει καθοριστεί ο filterformula. Γίνονται αποδεκτές οι ακόλουθες τιμές:

Παράδειγμα:

Σε Basic

      oDoc.ClearValues("SheetX.A1:F10")
  
Σε Python

    myDoc.ClearValues("SheetX.A1:F10")
  
tip

Ανατρέξτε στην τεκμηρίωση της μεθόδου ClearAll για παραδείγματα σχετικά με τον τρόπο χρήσης των ορισμάτων filterformula και filterscope.


CompactLeft

Διαγράφει τις στήλες μιας καθορισμένης περιοχής που ταιριάζουν με ένα φίλτρο που εκφράζεται ως τύπος Calc. Το φίλτρο εφαρμόζεται σε κάθε στήλη για να αποφασίσει εάν θα διαγραφεί ή όχι.

Η διαγραμμένη στήλη μπορεί να περιοριστεί στο ύψος του καθορισμένου εύρους ή να εκτείνεται στο ύψος ολόκληρου του φύλλου, διαγράφοντας έτσι ολόκληρες στήλες.

Αυτή η μέθοδος επιστρέφει μια συμβολοσειρά με τη διεύθυνση εύρους της συμπυκνωμένης περιοχής. Εάν διαγραφούν όλες οι στήλες, τότε επιστρέφεται μια κενή συμβολοσειρά.

note

Εάν επιλεγεί μια περιοχή κελιών, η κλήση αυτής της μεθόδου δεν θα επηρεάσει την επιλογή.


Σύνταξη:

svc.CompactLeft(range: str, wholecolumn: bool = False, opt filterformula: str): str

Παράμετροι:

range (περιοχή): Η περιοχή από την οποία θα διαγραφούν οι στήλες, ως συμβολοσειρές.

(ολόκληρη στήλη): Εάν αυτή η επιλογή οριστεί σε True ολόκληρη η στήλη θα διαγραφεί από το φύλλο. Η προεπιλεγμένη τιμή είναι False, που σημαίνει ότι η διαγραμμένη στήλη θα περιοριστεί στο ύψος της καθορισμένης range (περιοχής).

filterformula: Το φίλτρο που θα εφαρμοστεί σε κάθε στήλη για να καθοριστεί εάν θα διαγραφεί ή όχι. Το φίλτρο εκφράζεται ως τύπος Calc που πρέπει να εφαρμοστεί στην πρώτη στήλη. Όταν ο τύπος επιστρέψει True για μια στήλη, αυτή η στήλη θα διαγραφεί. Το προεπιλεγμένο φίλτρο διαγράφει όλες τις κενές στήλες.

Για παράδειγμα, ας υποθέσουμε ότι έχει επιλεγεί η περιοχή A1:J200 (ύψος = 200), επομένως ο προεπιλεγμένος τύπος είναι =(COUNTBLANK(A1:A200)=200). Αυτό σημαίνει ότι εάν και τα 200 κελιά είναι κενά στην πρώτη στήλη (Στήλη Α), τότε η στήλη διαγράφεται. Σημειώστε ότι ο τύπος εκφράζεται μόνο σε σχέση με την πρώτη στήλη. Εσωτερικά, η μέθοδος CompactLeft θα γενικεύσει αυτόν τον τύπο για όλες τις υπόλοιπες στήλες.

note

Οι συναρτήσεις του Calc που χρησιμοποιούνται στο όρισμα filterformula πρέπει να εκφράζονται χρησιμοποιώντας τα αγγλικά τους ονόματα. Επισκεφτείτε τη σελίδα Wiki List of Calc Functions για έναν πλήρη κατάλογο συναρτήσεων Calc στα Αγγλικά.


Παράδειγμα:

Σε Basic

    ' Διαγραφή όλων των κενών στηλών στην περιοχή G1:L10 από το Φύλλο1
    newrange = oDoc.CompactLeft("Sheet1.G1:L10")
    ' Το παρακάτω παράδειγμα είναι παρόμοιο, αλλά ολόκληρη η στήλη διαγράφεται από το φύλλο
    newrange = oDoc.CompactLeft("Sheet1.G1:L10", WholeColumn := True)
    ' Διαγράφει όλες τις στήλες όπου η πρώτη γραμμή σημειώνεται με "Χ"
    newrange = oDoc.CompactLeft("Sheet1.G1:L10", FilterFormula := "=(G1=""X"")")
    ' Διαγράφει όλες τις στήλες όπου το άθροισμα των τιμών στη στήλη είναι περιττό
    newrange = oDoc.CompactLeft("Sheet1.G1:L10", FilterFormula := "=(MOD(SUM(G1:G10);2)=1)")
  
Σε Python

    newrange = myDoc.CompactLeft("Sheet1.G1:L10")
    newrange = myDoc.CompactLeft("Sheet1.G1:L10", wholecolumn = True)
    newrange = myDoc.CompactLeft("Sheet1.G1:L10", filterformula = '=(G1="X")')
    newrange = myDoc.CompactLeft("Sheet1.G1:L10", filterformula = '=(MOD(SUM(G1:G10);2)=1)')
  

CompactUp

Διαγράφει τις σειρές μιας καθορισμένης περιοχής που ταιριάζουν με ένα φίλτρο που εκφράζεται ως τύπος Calc. Το φίλτρο εφαρμόζεται σε κάθε σειρά για να αποφασίσει αν θα διαγραφεί ή όχι.

Οι διαγραμμένες σειρές μπορούν να περιοριστούν στο πλάτος της καθορισμένης περιοχής, ή να εκτείνονται στο πλάτος ολόκληρου του φύλλου, διαγράφοντας έτσι ολόκληρες σειρές.

Αυτή η μέθοδος επιστρέφει μια συμβολοσειρά με τη διεύθυνση περιοχής της συμπυκνωμένης περιοχής. Εάν διαγραφούν όλες οι σειρές, τότε επιστρέφεται μια κενή συμβολοσειρά.

note

Εάν επιλεγεί μια περιοχή κελιών, η κλήση αυτής της μεθόδου δεν θα επηρεάσει την επιλογή.


Σύνταξη:

svc.CompactUp(range: str, wholerow: bool = False, opt filterformula: str): str

Παράμετροι:

range (περιοχή): Το εύρος από το οποίο θα διαγραφούν οι σειρές, ως συμβολοσειρά.

wholerow: Εάν αυτή η επιλογή οριστεί σε True ολόκληρη η σειρά θα διαγραφεί από το φύλλο. Η προεπιλεγμένη τιμή είναι False, που σημαίνει ότι η διαγραμμένη σειρά θα περιοριστεί στο πλάτος της καθορισμένης range (περιοχής).

filterformula: Το φίλτρο που θα εφαρμοστεί σε κάθε σειρά για να καθοριστεί εάν θα διαγραφεί ή όχι. Το φίλτρο εκφράζεται ως τύπος Calc που πρέπει να εφαρμοστεί στην πρώτη σειρά. Όταν ο τύπος επιστρέψει True για μια σειρά, αυτή η σειρά θα διαγραφεί. Το προεπιλεγμένο φίλτρο διαγράφει όλες τις κενές σειρές.

Για παράδειγμα, ας υποθέσουμε ότι έχει επιλεγεί η περιοχή A1:J200 (πλάτος = 10), οπότε ο προεπιλεγμένος τύπος είναι =(COUNTBLANK(A1:J1)=10). Αυτό σημαίνει ότι εάν και τα 10 κελιά είναι κενά στην πρώτη σειρά (Σειρά 1), τότε η σειρά διαγράφεται. Σημειώστε ότι ο τύπος εκφράζεται μόνο σε σχέση με την πρώτη σειρά. Εσωτερικά, η μέθοδος CompactUp θα γενικεύσει αυτόν τον τύπο για όλες τις υπόλοιπες σειρές.

note

Οι συναρτήσεις Calc που χρησιμοποιούνται στον τύπο που καθορίζεται στο όρισμα filterformula πρέπει να εκφράζονται χρησιμοποιώντας τα αγγλικά τους ονόματα. Επισκεφτείτε τη σελίδα Wiki List of Calc Functions για έναν πλήρη κατάλογο συναρτήσεων Calc στα Αγγλικά.


Παράδειγμα:

Σε Basic

    ' Διαγραφή όλων των κενών σειρών στην περιοχή G1:L10 από το Φύλλο1
    newrange = oDoc.CompactUp("Sheet1.G1:L10")
    ' Το παρακάτω παράδειγμα είναι παρόμοιο, αλλά ολόκληρη η σειρά διαγράφεται από το φύλλο
    newrange = oDoc.CompactUp("Sheet1.G1:L10", WholeRow := True)
    ' Διαγράφει όλες τις σειρές όπου η πρώτη στήλη σημειώνεται με "Χ"
    newrange = oDoc.CompactUp("Sheet1.G1:L10", FilterFormula := "=(G1=""X"")")
    ' Διαγράφει όλες τις σειρές όπου το άθροισμα των τιμών στη σειρά είναι περιττό
    newrange = oDoc.CompactUp("Sheet1.G1:L10", FilterFormula := "=(MOD(SUM(G1:L1);2)=1)")
  
Σε Python

    newrange = myDoc.CompactUp("Sheet1.G1:L10")
    newrange = myDoc.CompactUp("Sheet1.G1:L10", wholerow = True)
    newrange = myDoc.CompactUp("Sheet1.G1:L10", filterformula = '=(G1="X")')
    newrange = myDoc.CompactUp("Sheet1.G1:L10", filterformula = '=(MOD(SUM(G1:L1);2)=1)')
  

CopySheet

Αντιγράφει ένα καθορισμένο φύλλο πριν από ένα υπάρχον φύλλο ή στο τέλος του καταλόγου των φύλλων. Το φύλλο που πρόκειται να αντιγραφεί μπορεί να περιέχεται σε οποιοδήποτε ανοιχτό έγγραφο Calc. Επιστρέφει True εάν είναι επιτυχής.

Σύνταξη:

svc.CopySheet(sheetname: any, newname: str, [beforesheet: any]): bool

Παράμετροι:

sheetname (όνομα φύλλου): Το όνομα του φύλλου που θα αντιγραφεί ως συμβολοσειρά ή η αναφορά του ως αντικείμενο.

newname (νέο όνομα): Το όνομα του φύλλου που θέλετε να εισαγάγετε. Το όνομα δεν πρέπει να χρησιμοποιείται στο έγγραφο.

beforesheet (πριν από το φύλλο): Το όνομα (συμβολοσειρά) ή το ευρετήριο (αριθμητικό, ξεκινώντας από το 1) του φύλλου πριν από το οποίο θα εισαχθεί το αντιγραμμένο φύλλο. Αυτό το όρισμα είναι προαιρετικό και η προεπιλεγμένη συμπεριφορά είναι η προσθήκη του αντιγραμμένου φύλλου στην τελευταία θέση.

Παράδειγμα:

Σε Basic

Το ακόλουθο παράδειγμα δημιουργεί ένα αντίγραφο του φύλλου "SheetX" και το τοποθετεί ως το τελευταίο φύλλο στο τρέχον έγγραφο. Το όνομα του αντιγραμμένου φύλλου είναι "SheetY".


    Dim oDoc as Object
    ' Λαμβάνει το αντικείμενο του εγγράφου του ενεργού παραθύρου
    Set oDoc = CreateScriptService("Calc")
    oDoc.CopySheet("SheetX", "SheetY")
  

Το παρακάτω παράδειγμα αντιγράφει το "SheetX" από το "FileA.ods" και το επικολλά στην τελευταία θέση του "FileB.ods" με το όνομα "SheetY":


      Dim oDocA As Object : Set oDocA = ui.OpenDocument("C:\Documents\FileA.ods", Hidden := True, ReadOnly := True)
      Dim oDocB As Object : Set oDocB = ui.OpenDocument("C:\Documents\FileB.ods")
      oDocB.CopySheet(oDocA.Sheet("SheetX"), "SheetY")
  
Σε Python

    myDoc.CopySheet("SheetX", "SheetY")
  

    docA = ui.OpenDocument(r"C:\Documents\FileA.ods", hidden = True, readonly = True)
    docB = ui.OpenDocument(r"C:\Documents\FileB.ods")
    docB.CopySheet(docA.Sheet("SheetX"), "SheetY")
  
tip

Για να αντιγράψετε φύλλα μεταξύ ανοιχτών εγγράφων, χρησιμοποιήστε το CopySheet. Για να αντιγράψετε φύλλα από έγγραφα που είναι κλειστά, χρησιμοποιήστε το CopySheetFromFile.


CopySheetFromFile

Αντιγράφει ένα καθορισμένο φύλλο από ένα έγγραφο κλειστό Calc και το επικολλά πριν από ένα υπάρχον φύλλο ή στο τέλος του καταλόγου των φύλλων του αρχείου που αναφέρεται από ένα αντικείμενο Document.

Εάν το αρχείο δεν υπάρχει, δημιουργείται σφάλμα. Εάν το αρχείο δεν είναι έγκυρο αρχείο Calc, εισάγεται ένα κενό φύλλο. Εάν το φύλλο προέλευσης δεν υπάρχει στο αρχείο εισόδου, εισάγεται ένα μήνυμα σφάλματος στο επάνω μέρος του φύλλου που μόλις επικολλήθηκε.

Σύνταξη:

svc.CopySheetFromFile(filename: str, sheetname: str, newname: str, [beforesheet: any]): bool

Παράμετροι:

filename (όνομα αρχείου): Προσδιορίζει το αρχείο που θα ανοίξει. Πρέπει να ακολουθεί η σημειογραφία SF_FileSystem.FileNaming. Το αρχείο δεν πρέπει να προστατεύεται με κωδικό πρόσβασης.

sheetname: Το όνομα του φύλλου που θα αντιγραφεί ως συμβολοσειρά.

newname (νέο όνομα): Το όνομα του αντιγραμμένου φύλλου που θα εισαχθεί στο έγγραφο. Το όνομα δεν πρέπει να χρησιμοποιείται στο έγγραφο.

beforesheet: (πριν από το φύλλο): Το όνομα (συμβολοσειρά) ή το ευρετήριο (αριθμητικό, ξεκινώντας από το 1) του φύλλου πριν από το οποίο θα εισαχθεί το αντιγραμμένο φύλλο. Αυτό το όρισμα είναι προαιρετικό και η προεπιλεγμένη συμπεριφορά είναι η προσθήκη του αντιγραμμένου φύλλου στην τελευταία θέση.

Παράδειγμα:

Το ακόλουθο παράδειγμα αντιγράφει το "SheetX" από το "myFile.ods" και το επικολλά στο έγγραφο που αναφέρεται στο "oDoc" ως "SheetY" στην πρώτη θέση.

Σε Basic

    oDoc.CopySheetFromFile("C:\Documents\myFile.ods", "SheetX", "SheetY", 1)
  
Σε Python

    myDoc.CopySheetFromFile(r"C:\Documents\myFile.ods", "SheetX", "SheetY", 1)
  

CopyToCell

Αντιγράφει μια καθορισμένη περιοχή προέλευσης (τιμές, τύπους και μορφές) σε μια περιοχή ή κελί προορισμού. Η μέθοδος αναπαράγει τη συμπεριφορά μιας λειτουργίας Αντιγραφής/Επικόλλησης από μια περιοχή σε ένα μεμονωμένο κελί.

Επιστρέφει μια συμβολοσειρά που αντιπροσωπεύει την τροποποιημένη περιοχή κελιών. Το μέγεθος της τροποποιημένης περιοχής καθορίζεται πλήρως από το μέγεθος της περιοχής προέλευσης.

Η περιοχή προέλευσης μπορεί να ανήκει σε άλλο ανοιχτό έγγραφο.

Σύνταξη:

svc.CopyToCell(sourcerange: any, destinationcell: str): str

Παράμετροι:

source range: Η περιοχή προέλευσης ως συμβολοσειρά όταν ανήκει στο ίδιο έγγραφο ή ως αναφορά όταν ανήκει σε άλλο ανοιχτό έγγραφο Calc.

destinationcell: Το κελί προορισμού όπου θα επικολληθεί η αντιγραμμένη περιοχή κελιών, ως συμβολοσειρά. Εάν δοθεί ένα εύρος, λαμβάνεται υπόψη μόνο το επάνω αριστερό κελί του.

Παράδειγμα:

Σε Basic

Ακολουθεί ένα παράδειγμα όπου η προέλευση και ο προορισμός βρίσκονται στο ίδιο αρχείο:


      oDoc.CopyToCell("SheetX.A1:F10", "SheetY.C5")
  

Το παρακάτω παράδειγμα επεξηγεί τον τρόπο αντιγραφής μιας περιοχής από άλλο ανοιχτό έγγραφο Calc:


    Dim ui as Variant : ui = CreateScriptService("UI")
    Dim oDocSource As Object, oDocDestination As Object
    'Άνοιγμα του εγγράφου προέλευσης στο παρασκήνιο (κρυφό)
    Set oDocSource = ui.OpenDocument("C:\SourceFile.ods", Hidden := True, ReadOnly := True)
    Set oDocDestination = CreateScriptService("Calc")
    oDocDestination.CopyToCell(oDocSource.Range("Sheet1.C2:C4"), "SheetT.A5")
    ' Μην ξεχάσετε να κλείσετε το έγγραφο προέλευσης γιατί ανοίχτηκε ως κρυφό
    oDocSource.CloseDocument()
  
Σε Python

    docSource = ui.OpenDocument(r"C:\Documents\SourceFile.ods", hidden = True, readonly = True)
    docDestination = CreateScriptService("Calc")
    docDestination.CopyToCell(docSource.Range("Sheet1.C2:C4"), "SheetT.A5")
    docSource.CloseDocument()
  
tip

Για να προσομοιώσετε μια Αντιγραφή/Επικόλληση από μια περιοχή σε ένα μεμονωμένο κελί, χρησιμοποιήστε το CopyToCell. Για να προσομοιώσετε μια Αντιγραφή/Επικόλληση από μια περιοχή σε μια μεγαλύτερη περιοχή (με τα ίδια κελιά να αναπαράγονται πολλές φορές), χρησιμοποιήστε το CopyToRange.


CopyToRange

Αντιγράφει προς τα κάτω ή/και προς τα δεξιά μια καθορισμένη περιοχή προέλευσης (τιμές, τύπους και μορφές) σε μια περιοχή προορισμού. Η μέθοδος μιμείται τη συμπεριφορά μιας λειτουργίας Αντιγραφής/Επικόλλησης από μια περιοχή πηγής σε μια μεγαλύτερη περιοχή προορισμού.

Η μέθοδος επιστρέφει μια συμβολοσειρά που αντιπροσωπεύει την τροποποιημένη περιοχή κελιών.

Η περιοχή προέλευσης μπορεί να ανήκει σε άλλο ανοιχτό έγγραφο.

Σύνταξη:

svc.CopyToRange(sourcerange: any, destinationrange: str): str

Παράμετροι:

source range: Η περιοχή προέλευσης ως συμβολοσειρά όταν ανήκει στο ίδιο έγγραφο ή ως αναφορά όταν ανήκει σε άλλο ανοιχτό έγγραφο Calc.

destinationrange (περιοχή προορισμού): Ο προορισμός της αντιγραμμένης περιοχής κελιών, ως συμβολοσειράς.

Παράδειγμα:

Σε Basic

Αντιγραφή στο ίδιο έγγραφο:


    oDoc.CopyToRange("SheetX.A1:F10", "SheetY.C5:J5")
    ' Επιστρέφει μια συμβολοσειρά περιοχής: "$SheetY.$C$5:$J$14"
  

Αντιγραφή από ένα αρχείο σε άλλο:


    Dim oDocA As Object : Set oDocA = ui.OpenDocument("C:\Documents\FileA.ods", Hidden := True, ReadOnly := True)
    Dim oDocB As Object : Set oDocB = ui.OpenDocument("C:\Documents\FileB.ods")
    oDocB.CopyToRange(oDocA.Range("SheetX.A1:F10"), "SheetY.C5:J5")
  
Σε Python

    doc.CopyToRange("SheetX.A1:F10", "SheetY.C5:J5")
  

    docA = ui.OpenDocument(r"C:\Documents\FileA.ods", hidden = True, readonly = True)
    docB = ui.OpenDocument(r"C:\Documents\FileB.ods")
    docB.CopyToRange(docA.Range("SheetX.A1:F10"), "SheetY.C5:J5")
  

CreateChart

Δημιουργεί ένα νέο αντικείμενο γραφήματος που εμφανίζει τα δεδομένα στην καθορισμένη περιοχή. Το επιστρεφόμενο αντικείμενο γραφήματος μπορεί να τροποποιηθεί περαιτέρω χρησιμοποιώντας την υπηρεσία Chart (γράφημα).

Σύνταξη:

svc.CreateChart(chartname: str, sheetname: str, range: str, columnheader: bool = False, rowheader: bool = False): obj

Παράμετροι:

chartname: Το όνομα του γραφήματος από τον χρήστη που θα δημιουργηθεί. Το όνομα πρέπει να είναι μοναδικό στο ίδιο φύλλο.

sheetname: Το όνομα του φύλλου όπου θα τοποθετηθεί το γράφημα.

range: Η περιοχή που θα χρησιμοποιηθεί ως πηγή δεδομένων για το γράφημα. Η περιοχή μπορεί να αναφέρεται σε οποιοδήποτε φύλλο του εγγράφου Calc.

columnheader: (κεφαλίδα στήλης:) Όταν είναι True, η ανώτερη σειρά της περιοχής χρησιμοποιείται ως ετικέτες για τον άξονα κατηγορίας ή το υπόμνημα (Προεπιλογή = False).

rowheader: (κεφαλίδα σειράς:) Όταν είναι True, η πιο αριστερή στήλη της περιοχής χρησιμοποιείται ως ετικέτες για τον άξονα κατηγορίας ή το υπόμνημα. (Προεπιλογή = False).

Παράδειγμα:

Τα παρακάτω παραδείγματα σε Basic και Python δημιουργούν ένα γράφημα χρησιμοποιώντας τα δεδομένα που περιέχονται στην περιοχή "A1:B5" του "Sheet1" και τοποθετούν το γράφημα στο "Sheet2".

Σε Basic

    Set oChart = oDoc.CreateChart("MyChart", "Sheet2", "Sheet1.A1:B5", RowHeader := True)
    oChart.ChartType = "Donut"
  
Σε Python

    chart = doc.CreateChart("MyChart", "Sheet2", "Sheet1.A1:B5", rowheader=True)
    chart.ChartType = "Donut"
  
tip

Ανατρέξτε στη σελίδα βοήθειας σχετικά με την υπηρεσία γραφήματος του ScriptForge για να μάθετε περισσότερα πώς μπορείτε να χειριστείτε περαιτέρω τα αντικείμενα γραφήματος. Είναι δυνατή η αλλαγή ιδιοτήτων όπως ο τύπος του γραφήματος, οι τίτλοι του γραφήματος και των αξόνων και η θέση του γραφήματος.


CreatePivotTable

Δημιουργεί έναν νέο συγκεντρωτικό πίνακα με τις ιδιότητες που ορίζονται από τα ορίσματα που μεταβιβάζονται στη μέθοδο.

Πρέπει να δοθεί ένα όνομα για τον συγκεντρωτικό πίνακα. Εάν υπάρχει ήδη ένας συγκεντρωτικός πίνακας με το ίδιο όνομα στο στοχευμένο φύλλο, θα αντικατασταθεί χωρίς προειδοποίηση.

Αυτή η μέθοδος επιστρέφει μια συμβολοσειρά που περιέχει την περιοχή όπου τοποθετήθηκε ο νέος συγκεντρωτικός πίνακας.

Σύνταξη:

svc.CreatePivotTable(pivottablename: str, sourcerange: str, targetcell: str, datafields: str[0..*], rowfields: str[0..*], columnfields: str[0..*], filterbutton: bool = true, rowtotals: bool = true, columntotals: bool = true): str

Παράμετροι:

pivottablename: (όνομα συγκεντρωτικού πίνακα) Το όνομα του νέου συγκεντρωτικού πίνακα που ορίζεται από τον χρήστη.

sourcerange: (περτιοχή προέλευσης) Η περιοχή που περιέχει τα ακατέργαστα δεδομένα, ως συμβολοσειρά. Θεωρείται ότι η πρώτη σειρά περιέχει τα ονόματα πεδίων που χρησιμοποιούνται από τον συγκεντρωτικό πίνακα.

targetcell: (κελί προορισμού) Το επάνω αριστερό κελί όπου θα τοποθετηθεί ο νέος συγκεντρωτικός πίνακας. Εάν έχει καθοριστεί μια περιοχή, λαμβάνεται υπόψη μόνο το επάνω αριστερό κελί της.

datafields: (πεδία δεδομένων) Μπορεί να είναι είτε μια μεμονωμένη συμβολοσειρά, είτε ένας πίνακας που περιέχει συμβολοσειρές που ορίζουν ονόματα πεδίων και συναρτήσεις που θα εφαρμοστούν. Όταν καθορίζεται ένας πίνακας, πρέπει να ακολουθεί τη σύνταξη Array("FieldName[;Function]", ...).

Οι επιτρεπόμενες συναρτήσεις είναι: Sum, Count, Average, Max, Min, Product, CountNums, StDev, StDevP, Var, VarP and Median. Τα ονόματα των συναρτήσεων πρέπει να παρέχονται στα Αγγλικά. Όταν όλες οι τιμές είναι αριθμητικές, η Sum είναι η προεπιλεγμένη συνάρτηση, διαφορετικά η προεπιλεγμένη συνάρτηση είναι Count.

rowfields: (πεδία γραμμών)Μια μεμονωμένη συμβολοσειρά ή ένας πίνακας με τα ονόματα των πεδίων που θα χρησιμοποιηθούν ως γραμμές συγκεντρωτικού πίνακα.

columnfields: (πεδία στήλης) Μια μεμονωμένη συμβολοσειρά ή ένας πίνακας με τα ονόματα των πεδίων που θα χρησιμοποιηθούν ως στήλες του συγκεντρωτικού πίνακα.

filterbutton: (πλήκτρο φίλτρου) Καθορίζει εάν ένα πλήκτυρο φίλτρου θα εμφανίζεται πάνω από τον συγκεντρωτικό πίνακα (Προεπιλογή = True).

rowtotals: (αθροίσματα γραμμών) Καθορίζει εάν μια ξεχωριστή στήλη για τα σύνολα των γραμμών θα προστεθεί στον συγκεντρωτικό πίνακα (Προεπιλογή = True).

columntotals (αθροίσματα στηλών) Καθορίζει εάν θα προστεθεί μια ξεχωριστή γραμμή για τα σύνολα στηλών στον συγκεντρωτικό πίνακα (Προεπιλογή = True)

Παράδειγμα:

Σε Basic

    Dim vData As Variant, oDoc As Object, ui As Object, sTable As String, sPivot As String
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateDocument("Calc")
    vData = Array(Array("Item", "State", "Team", "2002", "2003", "2004"), _
        Array("Books", "Michigan", "Jean", 14788, 30222, 23490), _
        Array("Candy", "Michigan", "Jean", 26388, 15641, 32849), _
        Array("Pens", "Michigan", "Jean", 16569, 32675, 25396), _
        Array("Books", "Michigan", "Volker", 21961, 21242, 29009), _
        Array("Candy", "Michigan", "Volker", 26142, 22407, 32841))
    sTable = oDoc.SetArray("A1", vData)
    sPivot = oDoc.CreatePivotTable("PT1", sTable, "H1", _
        Array("2002", "2003;count", "2004;average"), _ ' Τρία πεδία δεδομένων
        "Item", _ ' Ένα μοναδικό πεδίο μίας γραμμής
        Array("State", "Team"), False) ' Δύο πεδία στηλών
  
Σε Python

    ui = CreateScriptService("UI")
    doc = ui.CreateDocument("Calc")
    vData = [["Item", "State", "Team", "2002", "2003", "2004"],
             ["Books", "Michigan", "Jean", 14788, 30222, 23490],
             ["Candy", "Michigan", "Jean", 26388, 15641, 32849],
             ["Pens", "Michigan", "Jean", 16569, 32675, 25396)],
             ["Books", "Michigan", "Volker", 21961, 21242, 29009],
             ["Candy", "Michigan", "Volker", 26142, 22407, 32841]]
    sTable = doc.SetArray("A1", vData)
    sPivot = doc.CreatePivotTable("PT1", sTable, "H1",
                                  ["2002", "2003;count", "2004;average"],
                                  "Item",
                                  ["State", "Team"], False)
  
tip

Για να μάθετε περισσότερα σχετικά με τους Συγκεντρωτικούς Πίνακες στο LibreOffice Calc, διαβάστε τη σελίδα βοήθειας Συγκεντρωτικός πίνακας.


DAvg, DCount, DMax, DMin and DSum

Εφαρμόστε τις συναρτήσεις Average, Count, Max, Min και Sum, αντίστοιχα, σε όλα τα κελιά που περιέχουν αριθμητικές τιμές σε μια δεδομένη περιοχή, εξαιρουμένων των τιμών από φιλτραρισμένες και κρυφές σειρές και κρυφές στήλες, όπως και για τις συναρτήσεις της γραμμής κατάστασης.

Σύνταξη:

svc.DAvg(range: str): float

svc.DCount(range: str): float

svc.DMax(range: str): float

svc.DMin(range: str): float

svc.DSum(range: str): float

Παράμετροι:

range: Η περιοχή στην οποία θα εφαρμοστεί η συνάρτηση, ως συμβολοσειρά.

Παράδειγμα:

Το παρακάτω παράδειγμα εφαρμόζει τη συνάρτηση Sum στην περιοχή "A1:A1000" του τρέχοντος επιλεγμένου φύλλου:

Σε Basic

      result = oDoc.DSum("~.A1:A1000")
  
Σε Python

    result = myDoc.DSum("~.A1:A1000")
  
note

Τα κελιά στη δεδομένη περιοχή που περιέχουν κείμενο θα αγνοηθούν από όλες αυτές τις συναρτήσεις. Για παράδειγμα, η μέθοδος DCount δεν θα μετρήσει κελιά με κείμενο, αλλά μόνο αριθμητικά κελιά.


ExportRangeToFile

Εξάγει την καθορισμένη περιοχή ως αρχείο εικόνας ή PDF.

Αυτή η μέθοδος επιστρέφει True εάν το αρχείο προορισμού αποθηκεύτηκε με επιτυχία.

note

Οι κρυφές σειρές ή στήλες στην καθορισμένη περιοχή δεν εξάγονται στο αρχείο προορισμού.


Σύνταξη:

svc.ExportRangeToFile(range: str, filename: str, imagetype: str = "pdf", overwrite: bool = False): bool

Παράμετροι:

range (περιοχή): Ένα όνομα φύλλου ή μια περιοχή κελιών προς εξαγωγή, ως συμβολοσειρά.

filename (όνομα αρχείου): Το όνομα του αρχείου που θα αποθηκευτεί. Πρέπει να ακολουθεί τη σημειογραφία SF_FileSystem.FileNaming.

imagetype (τύπος εικόνας): Προσδιορίζει τον τύπο του αρχείου προορισμού. Πιθανές τιμές είναι "jpeg", "pdf" (προεπιλογή) και "png".

overwrite (αντικατάσταση): Όταν έχει οριστεί σε True, το αρχείο προορισμού ενδέχεται να αντικατασταθεί (Προεπιλογή = False).

Παράδειγμα:

Σε Basic

    ' Εξάγει ολόκληρο το φύλλο ως αρχείο PDF
    oDoc.ExportRangeToFile("SheetX", "C:\Temp\image.pdf")
    Εξάγει την περιοχή ως αρχείο PNG και αντικαθιστά το αρχείο προορισμού εάν υπάρχει
    oDoc.ExportRangeToFile("SheetX.A1:D10", "C:\Temp\image.png", "png", Overwrite := True)
  
Σε Python

    doc.ExportRangeToFile("SheetX", r"C:\Temp\image.pdf")
    doc.ExportRangeToFile("SheetX.A1:D10", r"C:\Temp\image.png", "png", overwrite = True)
  

Forms

Ανάλογα με τις παραμέτρους που παρέχονται, αυτή η μέθοδος θα επιστρέψει