Εργασία με Cells
Επισκόπηση
Κάθε φύλλο εργασίας εκθέτει μια συλλογή cells που αντιστοιχίζει συμβολοσειρές διευθύνσεων σε στυλ Excel (όπως "A1", "B3") σε αντικείμενα Cell. Πρόσβαση σε ένα κελί γίνεται απευθείας με δείκτη:
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##Access a cell by address
cell = ws.cells["A1"]Οι τιμές, οι τύποι και οι πληροφορίες στυλ ζουν όλα στο αντικείμενο Cell. Μπορείτε
είτε να τροποποιήσετε ένα κελί επί τόπου γράφοντας στην ιδιότητα .value ή .formula,
ή να αντικαταστήσετε εντελώς το κελί εκχωρώντας μια νέα παρουσία Cell στη διεύθυνση.
Ανάγνωση και Εγγραφή Τιμών
Αναθέστε στο cell.value για να γράψετε μια συμβολοσειρά, ακέραιο ή δεκαδικό αριθμό. Διαβάστε την ίδια
ιδιότητα πίσω για να ανακτήσετε ό,τι αποθηκεύτηκε.
from aspose.cells_foss import Workbook
workbook = Workbook()
ws = workbook.worksheets[0]
##Write a string
ws.cells["A1"].value = "Hello, world"
##Write an integer
ws.cells["A2"].value = 42
##Write a float
ws.cells["A3"].value = 3.14159
##Read values back
print(ws.cells["A1"].value) # Hello, world
print(ws.cells["A2"].value) # 42
print(ws.cells["A3"].value) # 3.14159
workbook.save("values_demo.xlsx")Η ιδιότητα .value δέχεται οποιοδήποτε Python scalar. Η βιβλιοθήκη αποθηκεύει τον
τύπο Python όπως είναι· δεν πραγματοποιείται καμία έμμεση μετατροπή κατά τη στιγμή της εγγραφής.
Χρήση του Cell Constructor
Ο κατασκευαστής Cell σάς επιτρέπει να δημιουργήσετε ένα κελί με μια τιμή (και προαιρετικά έναν
τύπο) σε μια μόνο έκφραση. Αναθέστε το προκύπτον αντικείμενο Cell στον
δείκτη διεύθυνσης για να το τοποθετήσετε στο φύλλο.
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##Integer cell
ws.cells["A1"] = Cell(42)
##String cell
ws.cells["A2"] = Cell("Revenue")
##Float cell
ws.cells["A3"] = Cell(3.14)
##Explicitly empty cell (no value, no formula)
ws.cells["A4"] = Cell(None)
workbook.save("cell_constructor_demo.xlsx")Το πρώτο ορισμα θέσης στο Cell είναι η τιμή. Όταν περνάτε το None το
κελί αποθηκεύεται χωρίς τιμή, κάτι που είναι χρήσιμο όταν σκοπεύετε να ορίσετε έναν τύπο
ξεχωριστά ή θέλετε ένα ρητά κενό κελί αντί για ένα απουσιάζον.
Κελιά Τύπων
Ένα κελί τύπου αποθηκεύει μια συμβολοσειρά έκφρασης συμβατής με το Excel παράλληλα (ή αντί για) μια στατική τιμή. Υπάρχουν δύο τρόποι για να δημιουργήσετε ένα.
Μέσω του κατασκευαστή Cell — περάστε None ως τιμή και τη συμβολοσειρά τύπου ως δεύτερο όρισμα:
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
ws.cells["A1"] = Cell(10)
ws.cells["A2"] = Cell(20)
ws.cells["A3"] = Cell(30)
##Formula via constructor: value=None, formula="=SUM(A1:A3)"
ws.cells["A4"] = Cell(None, "=SUM(A1:A3)")
workbook.save("formula_constructor.xlsx")Μέσω της ιδιότητας .formula — ορίστε την ιδιότητα σε ένα υπάρχον κελί:
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
for i, v in enumerate([5, 10, 15, 20, 25], start=1):
ws.cells[f"A{i}"].value = v
ws.cells["B1"].formula = "=AVERAGE(A1:A5)"
workbook.save("formula_property.xlsx")Γρήγορη Αναφορά Κοινών Τύπων
| Σκοπός | Συμβολοσειρά τύπου |
|---|---|
| Άθροισμα περιοχής | =SUM(A1:A10) |
| Μέσος όρος περιοχής | =AVERAGE(A1:A10) |
| Μέγιστη τιμή | =MAX(A1:A10) |
| Ελάχιστη τιμή | =MIN(A1:A10) |
| Καταμέτρηση μη κενών | =COUNT(A1:A10) |
| Τιμή υπό συνθήκη | =IF(A1>0,"Positive","Non-positive") |
| Αναζήτηση τιμής | =VLOOKUP(D1,A1:B10,2,FALSE) |
| Συνένωση συμβολοσειρών | =CONCATENATE(A1," ",B1) |
Οι συμβολοσειρές τύπων πρέπει να ξεκινούν με =. Η βιβλιοθήκη τις αποθηκεύει ακριβώς· το Excel (ή ένας συμβατός αναγνώστης) αξιολογεί την έκφραση όταν ανοίγεται το αρχείο.
Επανάληψη Δεδομένων
Χρησιμοποιήστε έναν τυπικό βρόχο Python για να γεμίσετε μια στήλη ή γραμμή από μια λίστα:
from aspose.cells_foss import Workbook
workbook = Workbook()
ws = workbook.worksheets[0]
monthly_sales = [12_500, 14_200, 9_800, 17_600, 21_100, 18_400]
##Write a header
ws.cells["A1"].value = "Monthly Sales"
##Write data starting at row 2 (index 1 → address A2)
for i, val in enumerate(monthly_sales, start=2):
ws.cells[f"A{i}"].value = val
##Write a SUM formula below the data
last_row = 1 + len(monthly_sales) # row index of last data cell
ws.cells[f"A{last_row + 1}"].formula = f"=SUM(A2:A{last_row})"
workbook.save("monthly_sales.xlsx")Το πρότυπο enumerate(iterable, start=N) αντιστοιχεί καθαρά σε αριθμούς γραμμών του Excel επειδή οι γραμμές του Excel είναι 1‑βάσιμες. Η εκκίνηση στο start=2 διατηρεί τη γραμμή 1 για την κεφαλίδα.
Μικτοί Τύποι Τιμών
Το παρακάτω πλήρες παράδειγμα δημιουργεί ένα μικρό σύνολο δεδομένων με μια γραμμή κεφαλίδας κειμένου, τρεις γραμμές δεδομένων που περιέχουν ακέραιους, δεκαδικούς αριθμούς και συμβολοσειρές, και μια γραμμή τύπου που συνοψίζει τις αριθμητικές στήλες.
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##--- Header row ---
ws.cells["A1"].value = "Product"
ws.cells["B1"].value = "Units Sold"
ws.cells["C1"].value = "Unit Price"
ws.cells["D1"].value = "Revenue"
##--- Data rows ---
##Row 2
ws.cells["A2"] = Cell("Widget A")
ws.cells["B2"] = Cell(120)
ws.cells["C2"] = Cell(9.99)
ws.cells["D2"] = Cell(None, "=B2*C2")
##Row 3
ws.cells["A3"] = Cell("Widget B")
ws.cells["B3"] = Cell(85)
ws.cells["C3"] = Cell(14.50)
ws.cells["D3"] = Cell(None, "=B3*C3")
##Row 4
ws.cells["A4"] = Cell("Widget C")
ws.cells["B4"] = Cell(200)
ws.cells["C4"] = Cell(4.75)
ws.cells["D4"] = Cell(None, "=B4*C4")
##--- Summary row ---
ws.cells["A5"].value = "TOTAL"
ws.cells["B5"] = Cell(None, "=SUM(B2:B4)")
ws.cells["D5"] = Cell(None, "=SUM(D2:D4)")
workbook.save("mixed_types_dataset.xlsx")
print("Saved mixed_types_dataset.xlsx")Αφού ανοίξετε το αρχείο στο Excel (ή σε οποιαδήποτε συμβατή εφαρμογή λογιστικού φύλλου), η στήλη D και τα κελιά B5 / D5 θα εμφανίσουν τα αξιολογημένα αποτελέσματα των εκφράσεων τύπων.
Συμβουλές
None τιμή vs κενή συμβολοσειρά
Cell(None) και ws.cells["A1"].value = None δημιουργούν ένα κελί χωρίς αποθηκευμένη τιμή — αδιαφοροποιήσιμο από ένα κελί που δεν έχει ποτέ γραφτεί στα περισσότερα προγράμματα ανάγνωσης λογιστικών φύλλων. Cell("") ή ws.cells["A1"].value = "" δημιουργούν ένα κελί που περιέχει ρητά μια κενή συμβολοσειρά, την οποία ορισμένοι αναγνώστες και τύποι αντιμετωπίζουν διαφορετικά (για παράδειγμα, =COUNT αγνοεί τα κελιά με κενή συμβολοσειρά με τον ίδιο τρόπο που αγνοεί τα κενά κελιά, αλλά =COUNTA τα μετρά).
Συμβολοσειρά τύπου εναντίον στατικής τιμής
Η ανάγνωση του .value από ένα κελί τύπου επιστρέφει το None (ή την τελευταία αποθηκευμένη τιμή εάν είχε οριστεί πριν εκχωρηθεί ο τύπος). Η ανάγνωση του .formula επιστρέφει τη συμβολοσειρά της έκφρασης. Εάν χρειάζεται να διακρίνετε μεταξύ ενός κελιού τύπου και ενός κελιού απλής τιμής κατά την εκτέλεση, ελέγξτε αν το ws.cells["A1"].formula δεν είναι κενό:
cell = ws.cells["A1"]
if cell.formula:
print(f"Formula: {cell.formula}")
else:
print(f"Value: {cell.value}")Δείτε επίσης
- API Reference: Πλήρη τεκμηρίωση κλάσεων και μεθόδων για
aspose.cells_foss - Knowledge Base: Οδηγοί πώς‑να προσανατολισμένοι σε εργασίες
- Product Overview: Περίληψη χαρακτηριστικών και δυνατοτήτων
- Getting Started / Installation: pip install και ρύθμιση
- Blog: Introducing Aspose.Cells FOSS: Επισκόπηση βιβλιοθήκης και γρήγορη εκκίνηση