Praca z zarządzaniem arkuszami kalkulacyjnymi
Praca z zarządzaniem arkuszami kalkulacyjnymi
Ten przewodnik opisuje codzienne operacje związane z tworzeniem i modyfikowaniem arkuszy kalkulacyjnych: tworzenie skoroszytów, zapisywanie wartości komórek, dodawanie formuł, budowanie tabel oraz eksport do CSV.
Utwórz skoroszyt i zapisz komórki
NewWorkbook() zwraca skoroszyt z już istniejącym jednym arkuszem. Zapisz wartości przy użyciu Cells().Set(ref, value):
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Item")
ws.Cells().Set("B1", "Category")
ws.Cells().Set("C1", "Price")
ws.Cells().Set("A2", "Widget A")
ws.Cells().Set("B2", "Gadgets")
ws.Cells().Set("C2", 12.99)
wb.Save("outputfiles/inventory.xlsx")Odczytaj komórki
Cells().Get(ref) zwraca *Cell dla odniesienia wraz z błędem, jeśli odniesienie jest nieprawidłowe:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("C2", 12.99)
cell, err := ws.Cells().Get("C2")
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Printf("C2 = %v\n", cell.Value)Użyj Cells().All(), aby wyliczyć każdą wypełnioną komórkę w kolekcji, gdy potrzebujesz iterować po całym arkuszu.
Dodaj formułę
Cell.SetFormula przechowuje ciąg formuły w komórce. Najpierw utwórz komórkę za pomocą Set, a następnie dołącz formułę — formuła jest oceniana przez Excel lub LibreOffice przy otwarciu, a nie przez bibliotekę:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("D2", nil)
cell, _ := ws.Cells().Get("D2")
cell.SetFormula("C2*2")Zbuduj tabelę na podstawie danych
Gdy zakres danych jest wypełniony, Worksheet.AddTable przekształca go w ustrukturyzowaną, nazwaną tabelę:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Item")
ws.Cells().Set("A2", "Widget A")
tbl := ws.AddTable("A1:C2")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"
fmt.Printf("Created table %q covering %s\n", tbl.Name, tbl.Range)Eksportuj do CSV
Workbook.ExportToCSV zapisuje wskazany indeks arkusza do pliku CSV z separatorem wybranym przez Ciebie:
wb := cells_foss.NewWorkbook()
if err := wb.ExportToCSV(0, "outputfiles/inventory.csv", ','); err != nil {
fmt.Fprintf(os.Stderr, "Error exporting: %v\n", err)
os.Exit(1)
}W odwrotnej kolejności, Workbook.ImportFromCSV(path, sheetName, delimiter), odczytuje plik CSV do nazwanego arkusza.
Usuń komórkę
Cells().Remove(ref) czyści wartość komórki:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A2", "Widget A")
if err := ws.Cells().Remove("A2"); err != nil {
fmt.Printf("Error removing cell: %v\n", err)
}Wskazówki i najlepsze praktyki
- Utwórz komórkę za pomocą
Setprzed wywołaniemSetFormulana niej —SetFormuladziała na istniejącym*Cell, a nie na gołym ciągu referencji. - Podczas eksportowania skoroszytu zawierającego wiele arkuszy, parametr indeksu arkusza w
ExportToCSVokreśla, który arkusz zostanie wyeksportowany — indeks0to pierwszy arkusz. - Użyj
Cells().All()do intensywnego odczytu całego arkusza, zamiast wywoływaćGetw pętli dla każdej możliwej referencji.
Częste problemy
| Issue | Cause | Napraw |
|---|---|---|
SetFormula nie ma wpływu | Wywołano na odwołaniu do komórki, które nigdy nie zostało najpierw utworzone przy użyciu Set | Wywołaj ws.Cells().Set(ref, nil), aby utworzyć komórkę, następnie Get ją i wywołaj SetFormula |
| Eksport CSV jest pusty lub zawiera niewłaściwy arkusz | Przekazano nieprawidłowy indeks arkusza do ExportToCSV | Upewnij się, że indeks odpowiada pozycji zamierzonego arkusza w Workbook.Worksheets |
Get zwraca błąd | Odwołanie do komórki nie istnieje w kolekcji | Potwierdź, że odwołanie zostało wcześniej ustawione przy użyciu Set, lub obsłuż przypadek „not found” explicite |
FAQ
Czy Cells().Remove usuwa cały wiersz lub kolumnę?
Nie — usuwa wartość pojedynczej komórki w podanym odwołaniu.
Czy mogę utworzyć tabelę na zakresie, który już ma kolumnę z formułą?
Tak — AddTable działa na podanym zakresie komórek; formuły w zakresie są zachowane.
API Reference Podsumowanie
| Klasa / Metoda | Opis |
|---|---|
Workbook.NewWorkbook | Utwórz nowy skoroszyt z jednym arkuszem |
Cells.Set / Get / Remove / All | Zapisuj, odczytuj, usuwaj i wyliczaj komórki |
Cell.SetFormula / GetFormula | Dołącz i odczytaj ciąg formuły |
Worksheet.AddTable | Utwórz tabelę strukturalną w zakresie komórek |
Workbook.ExportToCSV / ImportFromCSV | Konwertuj pomiędzy XLSX a CSV |
Zobacz także
- Przegląd funkcji: Stylizacja, walidacja danych, tabele, obrazy i przesyłanie strumieniowe
- Aspose.Cells — Enterprise Product Family
- Aspose.Cells — Enterprise Documentation