Przegląd funkcji

Przegląd funkcji

Aspose.Cells FOSS dla Go API koncentruje się na Workbook, Worksheet, Cells i Cell. Ten przewodnik przechodzi przez pozostałe możliwości biblioteki: stylizację, walidację danych, tabele, obrazy oraz odczyty strumieniowe dużych plików.


Stylowanie komórek

Zgrupuj ustawienia Font, Fill, Alignment i Border w wielokrotnego użytku Style, a następnie zastosuj je do komórki za pomocą 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 kontroluje Horizontal, Vertical i WrapText; Border kontroluje widoczność reguły Top, Bottom, Left i Right oraz Color.


Walidacja danych

Worksheet.AddDataValidation dołącza regułę walidacji do zakresu komórek. Struktura DataValidation zawiera regułę Type, jedną lub dwie wartości Formula oraz pola komunikatów o błędach:

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)

Walidacja zakresu liczb całkowitych używa DataValidationTypeWhole z Formula1/Formula2 jako dolną i górną granicę.


Tabele

Worksheet.AddTable tworzy ustrukturyzowany Table w zakresie, z opcjonalnym wierszem nagłówka i nazwanym stylem tabeli:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

tbl := ws.AddTable("A1:F6")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"

Pobierz istniejącą tabelę po nazwie za pomocą Worksheet.GetTable(name).


Obrazy

Worksheet.AddPicture osadza obraz; Picture.SetAnchor(row, col) pozycjonuje go:

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)

Strumieniowanie dużych plików

StreamingReader odczytuje arkusz wiersz po wierszu za pomocą callback, więc skoroszyt z tysiącami wierszy nigdy nie musi być w pełni wczytany do pamięci:

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)
}

Wskazówki i najlepsze praktyki

  • Użyj StreamingReader zamiast pełnego Workbook ładowania, gdy plik może mieć tysiące wierszy i potrzebujesz tylko odczytu, a nie modyfikacji.
  • Zbuduj Style raz i używaj go w wielu komórkach zamiast tworzyć nowy dla każdej komórki.
  • Cell.SetFormula przechowuje łańcuch formuły dosłownie — jest on oceniany przez Excel lub LibreOffice przy otwarciu, a nie przez bibliotekę w czasie zapisu.
  • Sprawdź zwracany przez error wynik z Save, AddDataValidation oraz wywołań importu/eksportu CSV — operacje I/O arkusza kalkulacyjnego mogą się nie powieść przy nieprawidłowych ścieżkach lub niepoprawnym wejściu.

Typowe problemy

IssueCauseNapraw
Wartość komórki nie jest widoczna po SetOdwoływanie się do niewłaściwego arkusza lub odwołanie do komórki poza zakresemSprawdź indeks Worksheet oraz to, czy odniesienie w stylu A1 odpowiada zamierzonej komórce
Formuła wyświetlana jest jako surowy tekst zamiast obliczaćBiblioteka przechowuje jedynie ciąg formuły; nie ocenia formułOtwórz plik w Excelu lub LibreOffice, które wykonują obliczenia przy otwarciu
Walidacja danych nie jest widoczna w ExceluWalidacja została dodana do zakresu, który nie obejmuje docelowej komórkiPotwierdź, że ciąg zakresu (np. "A2:A10") obejmuje komórki, które chcesz zwalidować

FAQ

Czy biblioteka sama ocenia formuły?

Nr. Cell.SetFormula/GetFormula przechowuje ciąg formuły, który Excel lub LibreOffice ocenia po otwarciu pliku.

Czy mogę strumieniowo zapisywać duże skoroszyty, a nie tylko je strumieniowo odczytywać?

StreamingReader obejmuje odczyty strumieniowe. Zapisywanie dużych skoroszytów odbywa się obecnie poprzez standardowy, w pamięci Workbook/Worksheet API.

Czy AddTable automatycznie stosuje auto-filter?

Nie jest to potwierdzone w bieżącej powierzchni API — tylko pola HasHeaderRow i StyleName są udokumentowane jako Table. Zweryfikuj w wygenerowanym pliku .xlsx, jeśli ma to znaczenie dla twojego przypadku użycia.


Podsumowanie API Reference

Klasa / MetodaOpis
Workbook.NewWorkbook / SaveUtwórz i zapisz skoroszyt
Worksheet.CellsUzyskaj dostęp do kolekcji komórek arkusza
Cells.Get / Set / Remove / AllOdczytuj, zapisuj, usuwaj i wyliczaj komórki
Cell.SetStyle / SetFormula / GetFormulaZastosuj stylizację i formuły do komórki
Style, Font, Fill, Alignment, BorderStwórz wielokrotnego użytku formatowanie komórek
Worksheet.AddDataValidationDołącz regułę walidacji do zakresu komórek
Worksheet.AddTable / GetTableUtwórz i pobierz strukturalne zakresy tabel
Worksheet.AddPicture / Picture.SetAnchor(row, col)Osadź i pozycjonuj obrazy
StreamingReader.ProcessRowsStrumieniuj arkusz roboczy wiersz po wierszu
Workbook.ExportToCSV / ImportFromCSVKonwertuj pomiędzy XLSX a CSV
Workbook.SetPassword / VerifyPasswordZabezpiecz i sprawdź hasło skoroszytu

Zobacz także

 Polski