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 StreamingReader istället för en fullständig Workbook-laddning när en fil kan ha tusentals rader och du bara behöver läsa, inte modifiera, den.
  • Bygg ett Style en gång och återanvänd det i många celler snarare än att konstruera ett nytt för varje cell.
  • Cell.SetFormula lagrar 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ån Save, AddDataValidation och CSV-import/-export-anrop — kalkylblads-I/O kan misslyckas vid ogiltiga sökvägar eller felaktig indata.

Vanliga problem

IssueCauseÅtgärda
Cellvärdet syns inte efter SetRefererar till fel blad eller en cellreferens utanför intervalletBekräfta Worksheet-indexet och att A1-referensen matchar den avsedda cellen
Formeln visas som råtext istället för att beräknasBiblioteket 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 ExcelValidering lades till i ett område som inte inkluderar målcellBekrä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 / MetodBeskrivning
Workbook.NewWorkbook / SaveSkapa och spara en arbetsbok
Worksheet.CellsÅtkomst till cellsamlingen för ett arbetsblad
Cells.Get / Set / Remove / AllLäs, skriv, ta bort och räkna upp celler
Cell.SetStyle / SetFormula / GetFormulaTillämpa formatering och formler på en cell
Style, Font, Fill, Alignment, BorderSkapa återanvändbar cellformatering
Worksheet.AddDataValidationKoppla en valideringsregel till ett cellområde
Worksheet.AddTable / GetTableSkapa och hämta strukturerade tabellintervall
Worksheet.AddPicture / Picture.SetAnchor(row, col)Bädda in och placera bilder
StreamingReader.ProcessRowsStrömma ett arbetsblad rad för rad
Workbook.ExportToCSV / ImportFromCSVKonvertera mellan XLSX och CSV
Workbook.SetPassword / VerifyPasswordSkydda och kontrollera ett arbetsbokslösenord

Se även

 Svenska