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
StreamingReaderzamiast pełnegoWorkbookładowania, gdy plik może mieć tysiące wierszy i potrzebujesz tylko odczytu, a nie modyfikacji. - Zbuduj
Styleraz i używaj go w wielu komórkach zamiast tworzyć nowy dla każdej komórki. Cell.SetFormulaprzechowuje ł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
errorwynik zSave,AddDataValidationoraz 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
| Issue | Cause | Napraw |
|---|---|---|
Wartość komórki nie jest widoczna po Set | Odwoływanie się do niewłaściwego arkusza lub odwołanie do komórki poza zakresem | Sprawdź 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 Excelu | Walidacja została dodana do zakresu, który nie obejmuje docelowej komórki | Potwierdź, ż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 / Metoda | Opis |
|---|---|
Workbook.NewWorkbook / Save | Utwórz i zapisz skoroszyt |
Worksheet.Cells | Uzyskaj dostęp do kolekcji komórek arkusza |
Cells.Get / Set / Remove / All | Odczytuj, zapisuj, usuwaj i wyliczaj komórki |
Cell.SetStyle / SetFormula / GetFormula | Zastosuj stylizację i formuły do komórki |
Style, Font, Fill, Alignment, Border | Stwórz wielokrotnego użytku formatowanie komórek |
Worksheet.AddDataValidation | Dołącz regułę walidacji do zakresu komórek |
Worksheet.AddTable / GetTable | Utwórz i pobierz strukturalne zakresy tabel |
Worksheet.AddPicture / Picture.SetAnchor(row, col) | Osadź i pozycjonuj obrazy |
StreamingReader.ProcessRows | Strumieniuj arkusz roboczy wiersz po wierszu |
Workbook.ExportToCSV / ImportFromCSV | Konwertuj pomiędzy XLSX a CSV |
Workbook.SetPassword / VerifyPassword | Zabezpiecz i sprawdź hasło skoroszytu |