Funktionsöversikt
Funktionsöversikt
Aspose.Cells FOSS för Go:s API fokuserar på Workbook, Worksheet, Cells och Cell. Denna guide går igenom bibliotekets övriga funktioner: styling, datavalidering, tabeller, bilder och strömmande läsningar för stora filer.
Cellformatering
Gruppera Font, Fill, Alignment och Border inställningar i en återanvändbar Style, och applicera den sedan på en cell med 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 styr Horizontal, Vertical och WrapText; Border styr Top, Bottom, Left och Right regelns synlighet samt Color.
Datavalidering
Worksheet.AddDataValidation fäster en valideringsregel på ett cellintervall. DataValidation-strukturen bär regeln Type, ett eller två Formula-värden samt felmeddelandefält:
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)En heltalsintervallvalidering använder DataValidationTypeWhole med Formula1/Formula2 som nedre respektive övre gräns.
Tabeller
Worksheet.AddTable skapar en strukturerad Table över ett intervall, med en valfri rubrikrad och en namngiven tabellstil:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
tbl := ws.AddTable("A1:F6")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"Hämta en befintlig tabell med namn via Worksheet.GetTable(name).
Bilder
Worksheet.AddPicture bäddar in en bild; Picture.SetAnchor(row, col) placerar den:
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)Strömma stora filer
StreamingReader läser ett kalkylblad rad för rad via en återuppringning, så att en arbetsbok med flera tusen rader aldrig behöver laddas helt i minnet:
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)
}Tips och bästa praxis
- Använd
StreamingReaderistället för en fullständigWorkbook-laddning när en fil kan ha tusentals rader och du bara behöver läsa, inte modifiera, den. - Bygg ett
Styleen gång och återanvänd det i många celler snarare än att konstruera ett nytt för varje cell. Cell.SetFormulalagrar en formelsträng exakt — den utvärderas av Excel eller LibreOffice vid öppning, inte av biblioteket när den sparas.- Kontrollera
error-returvärdet frånSave,AddDataValidationoch CSV-import/-export-anrop — kalkylblads-I/O kan misslyckas vid ogiltiga sökvägar eller felaktig indata.
Vanliga problem
| Issue | Cause | Åtgärda |
|---|---|---|
Cellvärdet syns inte efter Set | Refererar till fel blad eller en cellreferens utanför intervallet | Bekräfta Worksheet-indexet och att A1-referensen matchar den avsedda cellen |
| Formeln visas som råtext istället för att beräknas | Biblioteket lagrar bara formelsträngen; det utvärderar inte formler | Öppna filen i Excel eller LibreOffice, som utför beräkningen vid öppning |
| Datavalidering syns inte i Excel | Validering lades till i ett område som inte inkluderar målcell | Bekräfta att områdessträngen (t.ex. "A2:A10") täcker de celler du förväntar dig att validera |
FAQ
Utvärderar biblioteket formler själv?
Nr. Cell.SetFormula/GetFormula lagrar en formelsträng som Excel eller LibreOffice utvärderar när filen öppnas.
Kan jag stream-write stora arbetsböcker, inte bara stream-read dem?
StreamingReader täcker streaming reads. Att skriva stora arbetsböcker går för närvarande via den standardmässiga in-memory Workbook/Worksheet API.
Applicerar AddTable ett auto-filter automatiskt?
Detta är inte bekräftat i den nuvarande API surface — endast HasHeaderRow och StyleName är dokumenterade Table fält. Verifiera mot den genererade .xlsx filen om detta är relevant för ditt användningsfall.
API Reference Sammanfattning
| Klass / Metod | Beskrivning |
|---|---|
Workbook.NewWorkbook / Save | Skapa och spara en arbetsbok |
Worksheet.Cells | Åtkomst till cellsamlingen för ett arbetsblad |
Cells.Get / Set / Remove / All | Läs, skriv, ta bort och räkna upp celler |
Cell.SetStyle / SetFormula / GetFormula | Tillämpa formatering och formler på en cell |
Style, Font, Fill, Alignment, Border | Skapa återanvändbar cellformatering |
Worksheet.AddDataValidation | Koppla en valideringsregel till ett cellområde |
Worksheet.AddTable / GetTable | Skapa och hämta strukturerade tabellintervall |
Worksheet.AddPicture / Picture.SetAnchor(row, col) | Bädda in och placera bilder |
StreamingReader.ProcessRows | Strömma ett arbetsblad rad för rad |
Workbook.ExportToCSV / ImportFromCSV | Konvertera mellan XLSX och CSV |
Workbook.SetPassword / VerifyPassword | Skydda och kontrollera ett arbetsbokslösenord |