Panoramica delle funzionalità
Panoramica delle funzionalità
Aspose.Cells FOSS per API di Go si concentra su Workbook, Worksheet, Cells e Cell. Questa guida illustra le altre capacità della libreria: styling, data validation, tables, pictures e streaming reads per file di grandi dimensioni.
Formattazione della cella
Raggruppa le impostazioni Font, Fill, Alignment e Border in un Style riutilizzabile, quindi applicalo a una cella con Cell.SetStyle:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
boldStyle.Font.Size = 12
highlightStyle := cells_foss.NewStyle()
highlightStyle.Font.Color = "FFFFFFFF"
highlightStyle.Font.Bold = true
highlightStyle.Fill = &cells_foss.Fill{
Type: cells_foss.FillTypeSolid,
Color: "FF4472C4",
}
cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)Alignment controlla Horizontal, Vertical e WrapText; Border controlla la visibilità delle regole Top, Bottom, Left e Right più Color.
Validazione dei dati
Worksheet.AddDataValidation associa una regola di validazione a un intervallo di celle. La struct DataValidation contiene la regola Type, uno o due valori Formula e i campi del messaggio di errore:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
dv := &cells_foss.DataValidation{
Type: cells_foss.DataValidationTypeList,
Formula1: `"Apple,Banana,Cherry,Dragonfruit"`,
AllowBlank: true,
ShowErrorMessage: true,
ErrorTitle: "Invalid Fruit",
ErrorMessage: "Please pick a fruit from the list.",
ErrorStyle: cells_foss.ErrorStyleStop,
}
ws.AddDataValidation("A2:A10", dv)Una convalida di intervallo di numeri interi utilizza DataValidationTypeWhole con Formula1/Formula2 come limiti inferiore e superiore.
Tabelle
Worksheet.AddTable crea un Table strutturato su un intervallo, con una riga di intestazione opzionale e uno stile di tabella denominato:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
tbl := ws.AddTable("A1:F6")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"Recupera una tabella esistente per nome con Worksheet.GetTable(name).
Immagini
Worksheet.AddPicture incorpora un’immagine; Picture.SetAnchor(row, col) la posiziona:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
imageBytes := []byte{} // populate with real image bytes before use
pic := &cells_foss.Picture{Data: imageBytes, Format: "png"}
ws.AddPicture(pic)
pic.SetAnchor(5, 0)Streaming di file di grandi dimensioni
StreamingReader legge un foglio di lavoro riga per riga tramite una callback, così un workbook con migliaia di righe non deve mai essere caricato interamente in memoria:
path := "outputfiles/large_workbook.xlsx"
sr := cells_foss.NewStreamingReader(path)
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
// process one row at a time
return nil
})
if err != nil {
fmt.Printf("Error streaming: %v\n", err)
}Suggerimenti e migliori pratiche
- Usa
StreamingReaderinvece di un caricamento completoWorkbookquando un file può contenere migliaia di righe e devi solo leggerlo, non modificarlo. - Crea un
Styleuna sola volta e riutilizzalo in molte celle invece di crearne uno nuovo per ogni cella. Cell.SetFormulamemorizza una stringa di formula così com’è — viene valutata da Excel o LibreOffice all’apertura, non dalla libreria al momento del salvataggio.- Verifica il valore di ritorno
errordaSave,AddDataValidatione dalle chiamate di import/export CSV — l’I/O del foglio di calcolo può fallire su percorsi non validi o input malformato.
Problemi comuni
| Issue | Cause | Correggi |
|---|---|---|
Valore della cella non visibile dopo Set | Riferimento al foglio sbagliato o a un riferimento di cella fuori intervallo | Conferma l’indice Worksheet e che il riferimento in stile A1 corrisponda alla cella prevista |
| La formula appare come testo grezzo anziché essere calcolata | La libreria memorizza solo la stringa della formula; non valuta le formule | Apri il file in Excel o LibreOffice, che eseguono il calcolo all’apertura |
| Convalida dei dati non visibile in Excel | La convalida è stata aggiunta a un intervallo che non include la cella di destinazione | Conferma che la stringa dell’intervallo (ad es. "A2:A10") copre le celle che ti aspetti di convalidare |
FAQ
La libreria valuta le formule da sola?
No. Cell.SetFormula/GetFormula memorizzano una stringa di formula che Excel o LibreOffice valuta quando il file viene aperto.
Posso scrivere in streaming grandi cartelle di lavoro, non solo leggerle in streaming?
StreamingReader copre le letture in streaming. La scrittura di grandi cartelle di lavoro attualmente avviene attraverso lo standard in memoria Workbook/Worksheet API.
Il AddTable applica automaticamente un auto-filter?
Questo non è confermato nell’attuale superficie API — solo HasHeaderRow e StyleName sono campi Table documentati. Verifica il file .xlsx generato se questo è importante per il tuo caso d’uso.
API Reference Riepilogo
| Classe / Metodo | Descrizione |
|---|---|
Workbook.NewWorkbook / Save | Crea e salva una cartella di lavoro |
Worksheet.Cells | Accedi alla raccolta di celle di un foglio di lavoro |
Cells.Get / Set / Remove / All | Leggi, scrivi, rimuovi ed elenca le celle |
Cell.SetStyle / SetFormula / GetFormula | Applica formattazione e formule a una cella |
Style, Font, Fill, Alignment, Border | Crea formattazione di cella riutilizzabile |
Worksheet.AddDataValidation | Allega una regola di convalida a un intervallo di celle |
Worksheet.AddTable / GetTable | Crea e recupera intervalli di tabelle strutturate |
Worksheet.AddPicture / Picture.SetAnchor(row, col) | Incorpora e posiziona le immagini |
StreamingReader.ProcessRows | Trasmetti un foglio di lavoro riga per riga |
Workbook.ExportToCSV / ImportFromCSV | Converti tra XLSX e CSV |
Workbook.SetPassword / VerifyPassword | Proteggi e verifica la password di una cartella di lavoro |