Εργασία με φόρμουλες
ΕΚΤΙΜΗΣΗ
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.
Υπάρχουν δύο τρόποι για να τοποθετήσετε μια φόρμουλα σε ένα κύτταρο:
- Κελί Κατασκευαστής «Α»
ws.cells["A4"] = Cell(None, "=SUM(A1:A3)") .formulaΙδιοκτησία «Α»ws.cells["A4"].formula = "=SUM(A1:A3)"
Η φόρμα κατασκευαστή είναι συμπαγές όταν χτίζετε ένα φύλλο από το σπρέι. η φόρική ιδιοκτησίας είναι πιο φυσική όταν έχετε ήδη μια αναφορά σε ένα υπάρχον κύτταρο και θέλετε να προσθέσετε μια φόρεμα σε αυτό.
Δημιουργία φόρμουλα μέσω του κατασκευαστή κυττάρων
Η Cell Η υπογραφή του κατασκευαστή είναι Cell(value, formula).Για να δημιουργήσουμε ένα καθαρό Φύση κελί, Pass 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.
| Σκοπός | Formula Στίνγκ | Σημειώσεις |
|---|---|---|
| Σύνθεση μιας σειράς | =SUM(A1:A10) | Προσθέτει όλες τις αριθμητικές τιμές στη σειρά |
| Μέση απόσταση ενός εύρους | =AVERAGE(A1:A10) | Αγνοεί λευκά κύτταρα |
| Μέγιστη αξία | =MAX(A1:A10) | Επιστρέφει τον μεγαλύτερο αριθμό |
| Μινιμική αξία | =MIN(A1:A10) | Επιστρέφει τον μικρότερο αριθμό |
| Αριθμός αριθμητικών κυττάρων | =COUNT(A1:A10) | Υπολογίζει κύτταρα με αριθμητικές τιμές μόνο |
| Αριθμός μη κενών κυττάρων | =COUNTA(A1:A10) | Αξίζει κάθε μη λευκό κύτταρο |
| Υπό όρους αξία | =IF(A1>100,"High","Low") | Τρεις μορφές επιχειρήσεων: δοκιμή, πραγματικό αποτέλεσμα, ψευδές αποτέλεσμα |
| Βαθμολογικό lookup | =VLOOKUP(D1,A1:B10,2,FALSE) | Η ΑΣΤΥΝΗ (FALSE· Συνιστάται |
| Συγκεντρωτικά Σύνδεσμοι | =CONCATENATE(A1," ",B1) | ή χρησιμοποιώντας =A1&" "&B1 |
| Ρόλος αριθμός | =ROUND(A1,2) | Το δεύτερο σενάριο είναι δεκάδες θέσεις. |
Όλα τα φάρμακα πρέπει να ξεκινούν με =.Οι ονομασίες λειτουργίας είναι περιπτώσεων-αίσθητες σε Excel-συμβατό αρχεία, αλλά η συμβατική φόρμα ανώτερης παρακολούθησης εμφανίζεται παραπάνω για: Η ανάγνωση.
Πλήρης παράδειγμα
Το παρακάτω παράδειγμα δημιουργεί ένα πενταγωνικό σύνολο δεδομένων αριθμητικών τιμών στην στήλη Α, στη συνέχεια γράφει SUM, AVERAGE, MAX και MIN φόρμουλες στην κολάριο Β, και αποθηκεύει το αποτέλεσμα σε ένα αρχείο 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 |
Σημειώσεις
Οι φράσεις πρέπει να ξεκινούν με =
Η βιβλιοθήκη αποθηκεύει το στυλ as-is. Απαγορεύοντας την κορυφαία = Αιτίες της Διαβάστε το διάγραμμα για να αντιμετωπίσετε το κείμενο ως μια κυριολεκτική γραμμή αντί για φόρμουλα.
##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)"Αναφορές εύρους χρησιμοποιούν πρότυπο σημειώσεις Excel A1
Οι γραμμές των στήλων είναι γραμμένες ως FirstCell:LastCell Χρησιμοποιώντας την κορυφή της στήλης Αριθμοί γραμμών και μονομετρικών αριθμών: "A1:A10", "B2:D5", "C3:C3".Ο ΦΟΣ Η βιβλιοθήκη δεν μεταφράζει ή επικυρώνει το εύρος ράβδο — ένα μη λειτουργικό εύροχο θα είναι να αποθηκεύεται verbatim και προκαλεί σφάλμα στο αναγνώστη φύλλου διανομής σε ανοιχτό χρόνο.
Οι φόρμουλες αποθηκεύονται ως αλυσίδες, δεν αξιολογούνται
Aspose.Cells FOSS does not include a formula engine. If you need the computed το αποτέλεσμα μιας φόρμουλας στο Python (για παράδειγμα, για να εκτελέσετε περαιτέρω υπολογισμούς), υπολογίστε την αξία και γράψτε τη ως στατική τιμή με .value.Χρησιμοποιήστε Φόρμουλα μόνο όταν ο τελικός χρήστης ανοίγει το αρχείο σε μια εφαρμογή φύλλου διακόπτου Αυτό μπορεί να τα αξιολογήσει.
Δείτε επίσης
- Πυροβολισμοί αναφοράς: Πλήρης κατηγορία και μέθοδος τεκμηρίωσης για
aspose.cells_foss - Γνώση βάσης:• Πως να καθοδηγούμε τα καθήκοντα
- ΕΠΙΣΚΕΨΗ ΠΡΟΤΑΣΙΑΣ: Χαρακτηριστικά και δυνατότητες σύνοψη
- Ξεκινά / εγκαταστήστε:• PIP εγκατάσταση και εγγραφή
- Blog: Εισαγωγή Aspose.Cells FOSS:Βιβλιοθήκη και γρήγορη έναρξη