Εργασία με Τύπους

Επισκόπηση

Aspose.Cells FOSS stores formulas as Excel-compatible strings. The library does not evaluate formulas internally — it preserves the expression verbatim in the file, and the spreadsheet application (Excel, LibreOffice Calc, or any compatible reader) computes the result when the file is opened.

Υπάρχουν δύο τρόποι για να τοποθετήσετε έναν τύπο σε ένα κελί:

  1. Κατασκευαστής κελιού — ws.cells["A4"] = Cell(None, "=SUM(A1:A3)")
  2. .formula ιδιότητα — ws.cells["A4"].formula = "=SUM(A1:A3)"

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


Ορισμός τύπου μέσω του κατασκευαστή Cell

Το Cell η υπογραφή του κατασκευαστή είναι Cell(value, formula). Για να δημιουργήσετε ένα καθαρό κελί τύπου, περάστε None ως τιμή και τη συμβολοσειρά έκφρασης ως δεύτερη παράμετρος:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##Input values
ws.cells["A1"] = Cell(10)
ws.cells["A2"] = Cell(25)
ws.cells["A3"] = Cell(15)

##Formula cell: value=None, formula="=SUM(A1:A3)"
ws.cells["A4"] = Cell(None, "=SUM(A1:A3)")

workbook.save("formula_constructor.xlsx")
print("Saved formula_constructor.xlsx")

Ορισμός value=None το καθιστά σαφές ότι το κελί δεν έχει στατική τιμή â€” η εμφανιζόμενη περιεχόμενα προέρχονται εξ ολοκλήρου από τον τύπο. Η μεταβίβαση ενός μη-None τιμής μαζί με έναν τύπο επιτρέπεται αλλά είναι ασυνήθιστο· οι περισσότεροι αναγνώστες λογιστικών φύλλων θα εμφανίσουν το αποτέλεσμα του τύπου και θα αγνοήσουν την αποθηκευμένη τιμή.


Ορισμός τύπου μέσω του .formula Ιδιότητα

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

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

##Write input data
for i, val in enumerate([4, 8, 15, 16, 23], start=1):
    ws.cells[f"A{i}"].value = val

##Attach a formula to an existing cell reference
cell = ws.cells["B1"]
cell.formula = "=AVERAGE(A1:A5)"

##Or assign directly by address
ws.cells["B2"].formula = "=MAX(A1:A5)"
ws.cells["B3"].formula = "=MIN(A1:A5)"

workbook.save("formula_property.xlsx")
print("Saved formula_property.xlsx")

Ανάγνωση τύπου πίσω

Μετά τη δημιουργία ενός κελιού τύπου, χρησιμοποιήστε .formula για να ανακτήσετε τη συμβολοσειρά της έκφρασης και .value για να ανακτήσετε τυχόν στατική τιμή (αν υπάρχει) που αποθηκεύτηκε μαζί του.

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

ws.cells["A1"] = Cell(None, "=SUM(B1:B5)")

cell = ws.cells["A1"]

print(cell.formula)   # =SUM(B1:B5)
print(cell.value)     # None  (no static value was set)

Στην πράξη, .value είναι None για οποιοδήποτε κελί που δημιουργήθηκε με Cell(None, formula). Εάν φορτώσετε ένα υπάρχον βιβλίο εργασίας που είχε αποθηκευτεί προηγουμένως με υπολογισμένες τιμές αποθηκευμένες στην κρυφή μνήμη μαζί με τους τύπους, .value μπορεί να επιστρέψει το τελευταίο αποθηκευμένο αποτέλεσμα — αλλά αυτό η συμπεριφορά εξαρτάται από το πώς η αρχική εφαρμογή αποθήκευσε το αρχείο και θα πρέπει να μην βασίζεται για νέους υπολογισμούς.

Για να διακρίνετε ένα κελί τύπου από ένα κελί απλής τιμής κατά την εκτέλεση:

cell = ws.cells["A1"]
if cell.formula:
    print(f"Formula cell: {cell.formula}")
else:
    print(f"Value cell: {cell.value}")

Κοινές Τύποι Excel

Ο παρακάτω πίνακας παραθέτει τις συχνά χρησιμοποιούμενες συναρτήσεις του Excel με παραδείγματα συμβολοσειρών τύπων που μπορείτε να περάσετε απευθείας στο Aspose.Cells FOSS.

ΣκοπόςΣυμβολοσειρά τύπουΣημειώσεις
Άθροισμα περιοχής=SUM(A1:A10)Προσθέτει όλες τις αριθμητικές τιμές στην περιοχή
Μέσος όρος περιοχής=AVERAGE(A1:A10)Αγνοεί κενά κελιά
Μέγιστη τιμή=MAX(A1:A10)Επιστρέφει τον μεγαλύτερο αριθμό
Ελάχιστη τιμή=MIN(A1:A10)Επιστρέφει τον μικρότερο αριθμό
Καταμέτρηση αριθμητικών κελιών=COUNT(A1:A10)Μετρά τα κελιά μόνο με αριθμητικές τιμές
Καταμέτρηση μη κενών κελιών=COUNTA(A1:A10)Μετρά οποιοδήποτε μη κενό κελί
Τιμή υπό συνθήκη=IF(A1>100,"High","Low")Μορφή τριών ορισμάτων: δοκιμή, αποτέλεσμα όταν αληθές, αποτέλεσμα όταν ψευδές
Κατακόρυφη αναζήτηση=VLOOKUP(D1,A1:B10,2,FALSE)Ακριβής αντιστοίχιση (FALSE) συνιστάται
Συνένωση συμβολοσειρών=CONCATENATE(A1," ",B1)Ή χρησιμοποιήστε =A1&" "&B1
Στρογγυλοποίηση αριθμού=ROUND(A1,2)Το δεύτερο όρισμα είναι τα δεκαδικά ψηφία

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


Πλήρες Παράδειγμα

Το παρακάτω παράδειγμα δημιουργεί ένα σύνολο δεδομένων πέντε γραμμών με αριθμητικές τιμές στη στήλη A, στη συνέχεια γράφει τύπους SUM, AVERAGE, MAX και MIN στη στήλη B, και αποθηκεύει το αποτέλεσμα σε αρχείο XLSX.

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##--- Headers ---
ws.cells["A1"].value = "Value"
ws.cells["B1"].value = "Formula"
ws.cells["C1"].value = "Result (evaluated by Excel)"

##--- Input data in A2:A6 ---
input_values = [14, 28, 7, 35, 21]
for i, val in enumerate(input_values, start=2):
    ws.cells[f"A{i}"].value = val

##--- Formula labels in B column ---
ws.cells["B2"].value = "SUM"
ws.cells["B3"].value = "AVERAGE"
ws.cells["B4"].value = "MAX"
ws.cells["B5"].value = "MIN"

##--- Formulas in C column ---
ws.cells["C2"] = Cell(None, "=SUM(A2:A6)")
ws.cells["C3"] = Cell(None, "=AVERAGE(A2:A6)")
ws.cells["C4"] = Cell(None, "=MAX(A2:A6)")
ws.cells["C5"] = Cell(None, "=MIN(A2:A6)")

##--- Save ---
workbook.save("formulas_demo.xlsx")
print("Saved formulas_demo.xlsx")

Όταν αυτό το αρχείο ανοίξει στο Excel ή στο LibreOffice Calc, η στήλη C θα εμφανίσει:

ΓραμμήΤύποςΑναμενόμενο αποτέλεσμα
C2=SUM(A2:A6)105
C3=AVERAGE(A2:A6)21
C4=MAX(A2:A6)35
C5=MIN(A2:A6)7

Σημειώσεις

Οι συμβολοσειρές τύπων πρέπει να ξεκινούν με =

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

##Correct — starts with =
ws.cells["A1"].formula = "=SUM(B1:B5)"

##Wrong — treated as the literal text "SUM(B1:B5)", not a formula
ws.cells["A1"].formula = "SUM(B1:B5)"

Οι αναφορές περιοχών χρησιμοποιούν την τυπική σημειογραφία A1 του Excel

Οι περιοχές γραμμής-στήλης γράφονται ως FirstCell:LastCell χρησιμοποιώντας κεφαλαία γράμματα στήλης και αριθμούς γραμμών που ξεκινούν από το 1: "A1:A10", "B2:D5", "C3:C3". Η FOSS η βιβλιοθήκη δεν μεταφράζει ή επικυρώνει τη συμβολοσειρά περιοχής — μια μη έγκυρη περιοχή θα αποθηκευτεί ακριβώς όπως είναι και προκαλέσει σφάλμα στον αναγνώστη υπολογιστικού φύλλου κατά το άνοιγμα.

Aspose.Cells FOSS για Python διανέμεται ως τυπικό πακέτο Python στο PyPI με το όνομα aspose-cells-foss. Η συνιστώμενη μέθοδος εγκατάστασης είναι το pip, το οποίο διαχειρίζεται όλες τις εξαρτήσεις αυτόματα.

Aspose.Cells FOSS does not include a formula engine. If you need the computed αποτέλεσμα ενός τύπου στο Python (για παράδειγμα, για να εκτελεστούν περαιτέρω υπολογισμοί), υπολογίστε την τιμή μόνοι σας και γράψτε την ως στατική τιμή με .value. Χρησιμοποιήστε τύποι μόνο όταν ο τελικός χρήστης θα ανοίξει το αρχείο σε εφαρμογή λογιστικού φύλλου που μπορούν να τα αξιολογήσουν.

Δείτε επίσης

 Ελληνικά