Πώς να φορτώσετε ένα υπολογιστικό φύλλο στο Go
Aspose.Cells FOSS for Go φορτώνει ένα υπάρχον .xlsx workbook στη μνήμη ως Workbook, παρέχοντάς σας πλήρη πρόσβαση στα worksheets και στα cells μέσω της τυπικής βιβλιοθήκης API. Εγκαταστήστε το module με go get πριν ξεκινήσετε.
Οδηγός βήμα προς βήμα
Βήμα 1: Εγκατάσταση του πακέτου
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26Επαληθεύστε την έκδοση του module στο go.mod σας μετά την εγκατάσταση.
Βήμα 2: Εισαγωγή των απαιτούμενων κλάσεων
import (
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)Βήμα 3: Δημιουργία και Συμπλήρωση ενός Φυλλαδίου για Φόρτωση
Αυτό το παράδειγμα πρώτα δημιουργεί ένα φύλλο εργασίας ώστε να υπάρχει ένα πραγματικό αρχείο .xlsx για φόρτωση — στον δικό σας κώδικα, αντικαταστήστε τη διαδρομή με ένα υπάρχον λογιστικό φύλλο:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Product")
ws.Cells().Set("B1", "Price")
ws.Cells().Set("A2", "Widget A")
ws.Cells().Set("B2", 12.99)
wb.Save("outputfiles/products.xlsx")Βήμα 4: Ανάγνωση Τιμών Κελιών από το Φορτωμένο Φύλλο Εργασίας
Προσπελάστε το πρώτο φύλλο εργασίας μέσω του Worksheets[0] και διαβάστε μεμονωμένα κελιά με το Cells().Get(ref):
wb := cells_foss.NewWorkbook()
wb.Worksheets[0].Cells().Set("B2", 12.99)
ws2 := wb.Worksheets[0]
cell, err := ws2.Cells().Get("B2")
if err != nil {
fmt.Printf("Error reading cell: %v\n", err)
return
}
fmt.Printf("Price: %v\n", cell.Value)Βήμα 5: Απαρίθμηση Όλων των Συμπληρωμένων Κελιών
Χρησιμοποιήστε το Cells().All() όταν χρειάζεται να επαναλάβετε κάθε κελί που έχει οριστεί, αντί να διαβάζετε γνωστές αναφορές μία-μία:
wb := cells_foss.NewWorkbook()
ws2 := wb.Worksheets[0]
ws2.Cells().Set("A1", "Product")
allCells := ws2.Cells().All()
for ref, c := range allCells {
fmt.Printf("%s = %v\n", ref, c.Value)
}Κοινά Προβλήματα και Διορθώσεις
Get επιστρέφει σφάλμα για μια αναφορά κελιού. Η αναφορά δεν έχει ακόμη οριστεί στη συλλογή. Επιβεβαιώστε ότι το κελί γράφτηκε με Set, ή ελέγξτε το επιστρεφόμενο error ρητά πριν χρησιμοποιήσετε το κελί.
Οι τιμές φαίνεται να είναι του λανθασμένου τύπου. Cell.Value αντανακλά οποιονδήποτε τύπο περάστηκε στο Set (string, int, float64, κ.λπ.) — ελέγξτε το με έναν type switch αν χρειάζεται να διακλαδωθείτε στον υποκείμενο τύπο Go.
Το φορτωμένο βιβλίο εργασίας δεν έχει δεδομένα στο αναμενόμενο φύλλο. Επιβεβαιώστε ότι ευρετηρίζετε τη σωστή καταχώρηση στο Worksheets — ένα βιβλίο εργασίας μπορεί να έχει περισσότερα από ένα φύλλο εργασίας, και τα δεδομένα-στόχος μπορεί να μην είναι στο Worksheets[0].
Συχνές Ερωτήσεις
Απαιτεί η φόρτωση ενός βιβλίου εργασίας το αρχικό αρχείο να υπάρχει ακόμη στον δίσκο;
Ναι — το Workbook διαβάζει από τη διαδρομή αρχείου που παρέχετε. Κρατήστε το αρχικό αρχείο προσβάσιμο για τη διάρκεια της φόρτωσης.
Μπορώ να τροποποιήσω ένα κελί μετά τη φόρτωση και να αποθηκεύσω τις αλλαγές πίσω;
Ναι — το Cells().Set λειτουργεί σε φορτωμένο βιβλίο εργασίας με τον ίδιο τρόπο όπως σε ένα νέο δημιουργημένο· καλέστε ξανά το Save για να γράψετε τις αλλαγές σας.
Υπάρχει τρόπος να αποφευχθεί η φόρτωση ολόκληρου του αρχείου στη μνήμη;
Ναι — χρησιμοποιήστε StreamingReader.ProcessRows για μεγάλα αρχεία όπου χρειάζεται μόνο να διαβάζετε γραμμές διαδοχικά αντί να φορτώνετε ολόκληρο το βιβλίο εργασίας.