Skoroszyt

Opcje definiują opcje odczytu i zapisu arkuszy kalkulacyjnych.

type Opcje struct {
    MaxCalcIterations uint
    Hasło             string
    WartośćSurowa     bool
    LimitRozpakowania int64
    LimitRozpakowaniaXML int64
    WzorzecKrótkiejDaty string
    WzorzecDługiejDaty  string
    WzorzecDługiegoCzasu string
    CultureInfo       NazwaKultury
}

MaxCalcIterations jest używane do określenia maksymalnej liczby iteracji podczas obliczania formuł, domyślnie ustawione na 0.

Hasło jest używane do określenia hasła do otwierania i zapisywania skoroszytu w formie czystego tekstu, domyślnie puste.

WartośćSurowa jest używane do określenia, czy podczas odczytywania wartości komórki ma zostać pobrana wartość surowa, domyślnie false (zastosowanie formatu liczbowego).

LimitRozpakowania jest używane do określenia limitu rozmiaru (w bajtach) podczas rozpakowywania dokumentu arkusza kalkulacyjnego, który powinien być większy lub równy LimitRozpakowaniaXML, domyślny limit to 16GB.

LimitRozpakowaniaXML jest używane do określenia limitu pamięci (w bajtach) podczas rozpakowywania każdego arkusza i tabeli współdzielonych ciągów, gdy rozmiar przekracza tę wartość, plik XML arkusza zostanie rozpakowany do katalogu tymczasowego systemu. Wartość ta powinna być mniejsza lub równa LimitRozpakowania, domyślny limit to 16MB.

WzorzecKrótkiejDaty jest używany do określenia krótkiego kodu formatowania daty numerycznej.

WzorzecDługiejDaty jest używany do określenia długiego kodu formatowania daty numerycznej.

WzorzecDługiegoCzasu jest używany do określenia długiego kodu formatowania czasu numerycznego.

CultureInfo jest używane do określenia regionalnego formatu, który będzie używany podczas odczytywania formatów liczbowych zależnych od ustawień regionalnych daty i czasu.

Tworzenie

func NowyPlik(opts ...Opcje) *Plik

Użyj NowyPlik, aby utworzyć nowy skoroszyt Excela, który domyślnie zawiera arkusz o nazwie Arkusz1.

Otwieranie

func OtwórzPlik(nazwaPliku string, opts ...Opcje) (*Plik, błąd)

Użyj OtwórzPlik, aby otworzyć istniejący dokument Excela. Na przykład, otwórz dokument arkusza kalkulacyjnego z zabezpieczeniem hasła:

f, err := excelize.OtwórzPlik("Book1.xlsx", excelize.Opcje{Hasło: "hasło"})
if err != nil {
    return
}

Użyj Zamknij() do zamknięcia otwartego skoroszytu.

Otwórz Strumień Danych

func OtwórzCzytnik(r io.Reader, opts ...Opcje) (*Plik, błąd)

OtwórzCzytnik odczytuje dane z io.Reader.

W poniższym przykładzie tworzymy prosty serwer HTTP do odbierania wysłanych dokumentów arkusza kalkulacyjnego, dodajemy nowy arkusz do otrzymanego dokumentu i zwracamy odpowiedź z pobraniem:

package main

import (
    "fmt"
    "net/http"

    "github.com/xuri/excelize/v2"
)

func przetwarzaj(w http.ResponseWriter, req *http.Request) {
    file, _, err := req.FormFile("file")
    if err != nil {
        fmt.Fprint(w, err.Error())
        return
    }
    defer file.Close()
    f, err := excelize.OtwórzCzytnik(file)
    if err != nil {
        fmt.Fprint(w, err.Error())
        return
    }
    f.Path = "Book1.xlsx"
    f.NewSheet("NowyArkusz")
    w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s", f.Path))
    w.Header().Set("Content-Type", req.Header.Get("Content-Type"))
    if err := f.Write(w); err != nil {
        fmt.Fprint(w, err.Error())
    }
}

func main() {
    http.HandleFunc("/przetwarzaj", przetwarzaj)
    http.ListenAndServe(":8090", nil)
}

Testowanie za pomocą cURL:

curl --location --request GET 'http://127.0.0.1:8090/przetwarzaj' \
--form 'file=@/tmp/template.xltx' -O -J

Zapisz

func (f *Plik) Zapisz(opts ...Opcje) błąd

Użyj Zapisz, aby zapisać edycje w dokumencie Excela.

Zapisz Jako

func (f *Plik) ZapiszJako(nazwa string, opts ...Opcje) błąd

Użyj ZapiszJako, aby zapisać dokument Excela jako określony plik.

Zamknij Skoroszyt

func (f *Plik) Zamknij() błąd

Zamknij skoroszyt i wyczyść ewentualne cache dyskowe systemu, które mogły zostać utworzone podczas otwierania dokumentu.

Nowy Arkusz

func (f *File) NowyArkusz(arkusz string) (int, error)

Utwórz nowy arkusz na podstawie podanej nazwy arkusza i zwróć indeks arkusza w skoroszycie. Należy zauważyć, że tworząc nowy skoroszyt, będzie on zawierał domyślny arkusz o nazwie Sheet1.

Usuń Arkusz

func (f *File) UsuńArkusz(arkusz string) error

Usuń wybrany arkusz na podstawie podanej nazwy arkusza. Używaj tej metody ostrożnie, ponieważ wpłynie ona na formuły, odwołania, wykresy i inne elementy związane z usuniętym arkuszem. Jeśli inne składniki odwołują się do wartości na usuniętym arkuszu, pojawi się błąd, a nawet może to spowodować niepowodzenie otwarcia skoroszytu. Wywołanie tej metody jest nieprawidłowe, gdy skoroszyt zawiera tylko jeden arkusz.

Skopiuj Arkusz

func (f *File) SkopiujArkusz(z, do int) error

Skopiuj arkusz na podstawie podanego arkusza źródłowego oraz indeksu arkusza docelowego. Programista musi potwierdzić, czy indeks arkusza docelowego już istnieje. Obecnie obsługiwane jest tylko kopiowanie arkuszy zawierających wartości komórek i formuły, a kopiowanie arkuszy zawierających tabele, obrazy, wykresy i tabele przestawne nie jest obsługiwane.

// Arkusz o nazwie Sheet1 już istnieje...
indeks, err := f.NowyArkusz("Sheet2")
if err != nil {
    fmt.Println(err)
    return
}
err := f.SkopiujArkusz(1, indeks)

Grupowanie Arkuszy

func (f *File) GrupujArkusze(arkusze []string) error

Zgrupuj arkusze na podstawie podanych nazw arkuszy, przy czym domyślny arkusz musi być zawarty w podanych arkuszach.

Rozgrupowanie Arkuszy

func (f *File) RozgrupujArkusze() error

Rozgrupuj arkusze.

Ustaw Obraz Tła Arkusza

func (f *File) UstawTłoArkusza(arkusz, obraz string) error

Ustaw kafelkowany obraz tła dla określonego arkusza na podstawie podanej nazwy arkusza i ścieżki pliku obrazu. Obsługiwane formaty plików obrazu to: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF i WMZ.

func (f *File) UstawTłoArkuszaZBajtów(arkusz, rozszerzenie string, obraz []byte) error

Ustaw kafelkowany obraz tła dla określonego arkusza na podstawie podanej nazwy arkusza, rozszerzenia formatu obrazu i danych w formacie obrazu. Obsługiwane formaty plików obrazu to: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF i WMZ.

Ustaw Domyślny Arkusz

func (f *File) UstawDomyślnyArkusz(indeks int)

Ustaw domyślny arkusz na podstawie podanej wartości indeksu, gdzie wartość powinna być większa lub równa 0 oraz mniejsza niż łączna liczba arkuszy w skoroszycie.

Pobierz Indeks Domyślnego Arkusza

func (f *File) PobierzIndeksDomyślnegoArkusza() int

Pobierz indeks domyślnego arkusza, zwracając 0, jeśli nie zostanie znaleziony żaden domyślny arkusz.

Ustaw Widoczność Arkusza

func (f *File) UstawWidocznośćArkusza(arkusz string, widoczny bool, bardzoUkryty ...bool) error

Ustaw widoczność arkusza na podstawie podanej nazwy arkusza i parametru widoczności. Skoroszyt musi zawierać co najmniej jeden widoczny arkusz. Jeśli podany arkusz jest domyślnym arkuszem, ustawienie widoczności jest nieprawidłowe. Trzeci opcjonalny parametr bardzoUkryty jest ważny tylko wtedy, gdy wartość parametru widoczny jest false.

Na przykład, aby ukryć arkusz o nazwie Sheet1:

err := f.UstawWidocznośćArkusza("Sheet1", false)

Pobierz Widoczność Arkusza

func (f *File) PobierzWidocznośćArkusza(arkusz string) (bool, error)

Pobierz ustawienie widoczności arkusza na podstawie podanej nazwy arkusza. Na przykład, aby pobrać ustawienie widoczności arkusza o nazwie Sheet1:

widoczny, err := f.PobierzWidocznośćArkusza("Sheet1")

Ustawianie Właściwości Arkusza

func (f *File) SetSheetProps(sheet string, opts *SheetPropsOptions) error

Ustawia właściwości określonego arkusza na podstawie podanej nazwy arkusza i opcji właściwości. Obsługiwane opcje właściwości arkusza są następujące:

Właściwość Typ Opis
CodeName *string Nazwa kodowa
EnableFormatConditionsCalculation *bool Określa, czy formatowanie warunkowe jest obliczane automatycznie, domyślna wartość to true
Published *bool Określa, czy arkusz jest opublikowany, domyślna wartość to true
AutoPageBreaks *bool Określa, czy arkusz automatycznie dzieli strony, domyślna wartość to true
FitToPage *bool Określa, czy włączyć drukowanie dopasowane do strony, domyślna wartość to false
TabColorIndexed *int Używane dla wstecznie zgodnej zindeksowanej wartości koloru
TabColorRGB *string Standardowa wartość koloru ARGB
TabColorTheme *int Indeks koloru motywu, zaczynając od 0
TabColorTint *float64 Wartość odcienia zastosowana do koloru, domyślna wartość to 0.0
OutlineSummaryBelow *bool Określa kierunek zestawiania, czy poniżej danych szczegółowych, domyślna wartość to true
OutlineSummaryRight *bool Określa kierunek zestawiania, czy po prawej stronie danych szczegółowych, domyślna wartość to true
BaseColWidth *uint8 Podstawowa szerokość kolumny wyrażona w liczbie znaków, domyślna wartość to 8
DefaultColWidth *float64 Domyślna szerokość kolumny, uwzględniająca marginesy i linie siatki
DefaultRowHeight *float64 Wysokość wiersza wyrażona w punktach
CustomHeight *bool Określa, czy zastosowano niestandardową wysokość wiersza, domyślna wartość to false
ZeroHeight *bool Określa, czy wiersze są domyślnie ukryte, domyślna wartość to false
ThickTop *bool Określa, czy wiersze domyślnie mają grubą górną krawędź, domyślna wartość to false
ThickBottom *bool Określa, czy wiersze domyślnie mają grubą dolną krawędź, domyślna wartość to false

Na przykład, aby ukryć domyślnie wiersz w arkuszu o nazwie Sheet1:

Ustawianie właściwości arkusza

f, enable := excelize.NewFile(), true
if err := f.SetSheetProps("Sheet1", &excelize.SheetPropsOptions{
    ZeroHeight: &enable,
}); err != nil {
    fmt.Println(err)
}
if err := f.SetRowVisible("Sheet1", 10, true); err != nil {
    fmt.Println(err)
}
f.SaveAs("Book1.xlsx")

Pobieranie Właściwości Arkusza

func (f *File) GetSheetProps(sheet string) (SheetPropsOptions, error)

Pobiera właściwości określonego arkusza na podstawie podanej nazwy arkusza.

Ustawianie Właściwości Widoku Arkusza

func (f *File) SetSheetView(sheet string, viewIndex int, opts *ViewOptions) error

Ustawia właściwości widoku arkusza na podstawie podanej nazwy arkusza, indeksu widoku i opcji widoku. viewIndex może być liczbą ujemną, w takim przypadku liczenie będzie przeprowadzane od końca (-1 oznacza ostatni widok). Obsługiwane opcje ustawiania właściwości widoku arkusza są następujące:

Właściwość Typ Opis
DefaultGridColor *bool Określa, czy używać domyślnego koloru linii siatki, domyślna wartość to true
RightToLeft *bool Określa, czy wyświetlać z prawej do lewej, domyślna wartość to false
ShowFormulas *bool Określa, czy arkusz wyświetla formuły, domyślna wartość to false
ShowGridLines *bool Określa, czy arkusz wyświetla linie siatki, domyślna wartość to true
ShowRowColHeaders *bool Określa, czy arkusz wyświetla nagłówki wierszy i kolumn, domyślna wartość to true
ShowRuler *bool Określa, czy wyświetlić linijkę w widoku układu strony, domyślna wartość to true
ShowZeros *bool Określa, czy wyświetlać wartości zero w komórkach, domyślna wartość to true, w przeciwnym razie będą wyświetlane jako puste
TopLeftCell *string Określa współrzędną widocznego górnego lewego rogu
View *string Wskazuje typ widoku arkusza, przyjmujący wartości wyliczeniowe normal, pageBreakPreview i pageLayout
ZoomScale *float64 Aktualna skala zoom okna wyświetlania widoku, ograniczona do zakresu od 10 do 400, domyślna wartość to 100

Pobieranie Właściwości Widoku Arkusza

func (f *File) GetSheetView(sheet string, viewIndex int) (ViewOptions, error)

Pobiera właściwości widoku arkusza na podstawie podanej nazwy arkusza i indeksu widoku. viewIndex może być liczbą ujemną, w takim przypadku liczenie będzie przeprowadzane od końca (-1 oznacza ostatni widok`).

Ustawianie Układu Strony Arkusza

func (f *File) SetPageLayout(sheet string, opts *PageLayoutOptions) error

Ustawia atrybuty układu strony arkusza na podstawie podanej nazwy arkusza i parametrów układu strony. Obecnie obsługiwane atrybuty układu strony obejmują:

Atrybut Size służy do określenia rozmiaru papieru strony, przy czym domyślny rozmiar układu strony to "Letter 8½ × 11 cali". Poniższa tabela pokazuje związek między rozmiarami układu strony a parametrem indeksu Size w programie Excelize:

Indeks Rozmiar Papieru
1 Letter 8½ × 11 cali
2 Letter Small 8½ × 11 cali
3 Tabloid 11 × 17 cali
4 Ledger 17 × 11 cali
... ...
40 Niemiecka Składka Standardowa 8.5 × 12 cali
41 Niemiecka składka prawna 8.5 × 13 cali
42 ISO B4 250 × 353 mm
43 Kartka pocztowa japońska 100 × 148 mm
44 Standardowy papier 9 × 11 cali
45 Standardowy papier 10 × 11 cali
46 Standardowy papier 15 × 11 cali
47 List zaproszeniowy 220 × 220 mm
50 Powiększony papier firmowy 9.275 × 12 cali
51 Bardzo duży papier prawny 9.275 × 15 cali
52 Duży papier tabloidowy 11.69 × 18 cali
53 A4 bardzo duży 236 × 322 mm
54 Papier firmowy układu poziomego 8.275 × 11 cali
55 A4 układu poziomego 210 × 297 mm
56 Papier firmowy powiększony układu poziomego 9.275 × 12 cali
57 Papier SuperA/SuperA/A4 227 × 356 mm
58 Papier SuperB/SuperB/A3 305 × 487 mm
59 Powiększony papier firmowy 8.5 × 12.69 cali
60 A4 powiększony 210 × 330 mm
61 A5 układu poziomego 148 × 210 mm
62 JIS B5 układu poziomego 182 × 257 mm
63 A3 bardzo duży 322 × 445 mm
64 A5 bardzo duży 174 × 235 mm
65 ISO B5 bardzo duży 201 × 276 mm
66 A2 420 × 594 mm
67 A3 układu poziomego 297 × 420 mm
68 A3 bardzo duży układu poziomego 322 × 445 mm
69 Podwójna kartka pocztowa japońska 200 × 148 mm
70 A6 105 × 148 mm
71 Japońska koperta Kaku #2
72 Japońska koperta Kaku #3
73 Japońska koperta Chou #3
74 Japońska koperta Chou #4
75 Papier firmowy układu poziomego 11 × 8½ cali
76 A3 układu poziomego 420 × 297 mm
77 A4 układu poziomego 297 × 210 mm
78 A5 układu poziomego 210 × 148 mm
79 B4 (JIS) układu poziomego 364 × 257 mm
80 B5 (JIS) układu poziomego 257 × 182 mm
81 Kartka pocztowa japońska układu poziomego 148 × 100 mm
82 Podwójna kartka pocztowa japońska układu poziomego 148 × 200 mm
83 A6 układu poziomego 148 × 105 mm
84 Japońska koperta Kaku #2 układu poziomego
85 Japońska koperta Kaku #3 układu poziomego
86 Japońska koperta Chou #3 układu poziomego
```markdown
| 87 | Japońska koperta Chou #4 Krajobrazowa |
| 88 | B6 (JIS) 128 × 182 mm |
| 89 | B6 (JIS) Krajobrazowa 182 × 128 mm |
| 90 | 12 × 11 cali |
| 91 | Japońska koperta You #4 |
| 92 | Japońska koperta You #4 Krajobrazowa |
| 93 | Chińskie 16K 146 × 215 mm |
| 94 | Chińskie 32K 97 × 151 mm |
| 95 | Chińskie Duże 32K 97 × 151 mm |
| 96 | Chińska koperta #1 102 × 165 mm |
| 97 | Chińska koperta #2 102 × 176 mm |
| 98 | Chińska koperta #3 125 × 176 mm |
| 99 | Chińska koperta #4 110 × 208 mm |
| 100 | Chińska koperta #5 110 × 220 mm |
| 101 | Chińska koperta #6 120 × 230 mm |
| 102 | Chińska koperta #7 160 × 230 mm |
| 103 | Chińska koperta #8 120 × 309 mm |
| 104 | Chińska koperta #9 229 × 324 mm |
| 105 | Chińska koperta #10 324 × 458 mm |
| 106 | Chińskie 16K Krajobrazowa |
| 107 | Chińskie 32K Krajobrazowa |
| 108 | Chińskie Duże 32K Krajobrazowa |
| 109 | Chińska koperta #1 Krajobrazowa 165 × 102 mm |
| 110 | Chińska koperta #2 Krajobrazowa 176 × 102 mm |
| 111 | Chińska koperta #3 Krajobrazowa 176 × 125 mm |
| 112 | Chińska koperta #4 Krajobrazowa 208 × 110 mm |
| 113 | Chińska koperta #5 Krajobrazowa 220 × 110 mm |
| 114 | Chińska koperta #6 Krajobrazowa 230 × 120 mm |
| 115 | Chińska koperta #7 Krajobrazowa 230 × 160 mm |
| 116 | Chińska koperta #8 Krajobrazowa 309 × 120 mm |
| 117 | Chińska koperta #9 Krajobrazowa 324 × 229 mm |
| 118 | Chińska koperta #10 Krajobrazowa 458 × 324 mm |

Właściwość `Orientation` jest używana do określenia kierunku układu strony, gdzie domyślny kierunek układu strony to "portret", a opcjonalne wartości to `portret` i `krajobraz`.

Właściwość `FirstPageNumber` jest używana do określenia numeru początkowej strony, gdzie domyślnie jest ustawiona na automatyczną.

Właściwość `AdjustTo` jest używana do określenia stosunku skalowania strony, w zakresie od 10 do 400, czyli skaluje się od 10% do 400%, a domyślna wartość to `100` dla normalnego rozmiaru. Ustawienie `FitToHeight` lub `FitToWidth` zastąpi tę właściwość.

Właściwość `FitToHeight` jest używana do określenia skalowania strony w celu dostosowania szerokości strony, gdzie domyślna wartość to `1`.

Właściwość `FitToWidth` jest używana do określenia skalowania strony w celu dostosowania wysokości strony, gdzie domyślna wartość to `1`.

Właściwość `BlackAndWhite` jest używana do określenia drukowania monochromatycznego, gdzie domyślnie jest wyłączona.
f := excelize.NewFile()
var (
    size                 = 10
    orientation          = "landscape"
    firstPageNumber uint = 2
    adjustTo        uint = 100
    fitToHeight          = 2
    fitToWidth           = 2
    blackAndWhite        = true
)
if err := f.SetPageLayout("Sheet1", &excelize.PageLayoutOptions{
    Size:            &size,
    Orientation:     &orientation,
    FirstPageNumber: &firstPageNumber,
    AdjustTo:        &adjustTo,
    FitToHeight:     &fitToHeight,
    FitToWidth:      &fitToWidth,
    BlackAndWhite:   &blackAndWhite,
}); err != nil {
    fmt.Println(err)
}

Uzyskaj Układ Strony Arkusza Kalkulacyjnego

func (f *File) GetPageLayout(sheet string) (PageLayoutOptions, error)

Pobiera właściwości układu strony arkusza kalkulacyjnego na podstawie podanej nazwy arkusza i parametrów układu strony.

Ustaw Marginesy Strony Arkusza Kalkulacyjnego

func (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error

Ustawia marginesy strony arkusza kalkulacyjnego na podstawie podanej nazwy arkusza i parametrów marginesów. Obsługiwane opcje marginesów to:

Opcja Typ Opis
Dolny *float64 Margines dolny
Stopka *float64 Margines stopki
Nagłówek *float64 Margines nagłówka
Lewy *float64 Margines lewy
Prawy *float64 Margines prawy
Górny *float64 Margines górny
Poziomo *bool Wyśrodkowanie strony w poziomie
Pionowo *bool Wyśrodkowanie strony w pionie

Uzyskaj Marginesy Strony Arkusza Kalkulacyjnego

func (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error)

Pobiera marginesy strony arkusza kalkulacyjnego na podstawie podanej nazwy arkusza i parametrów marginesu.

Ustaw Właściwości Skoroszytu

func (f *File) SetWorkbookProps(opts *WorkbookPropsOptions) error

SetWorkbookProps służy do ustawiania właściwości skoroszytu. Obsługiwane właściwości skoroszytu to:

Właściwość Typ Opis
Date1904 *bool Wskazuje, czy skoroszyt wykorzystuje system daty 1904
FilterPrivacy *bool Filtr prywatności, wskazuje, czy aplikacja sprawdza informacje osobiste w skoroszycie
CodeName *string Nazwa kodowa

Uzyskaj Właściwości Skoroszytu

func (f *File) GetWorkbookProps() (WorkbookPropsOptions, error)

GetWorkbookProps służy do pobierania właściwości skoroszytu.

Ustawianie Nagłówka i Stopki

func (f *File) SetHeaderFooter(sheet string, opts *HeaderFooterOptions) error

Ustawia nagłówek i stopkę arkusza na podstawie podanej nazwy arkusza i znaków kontrolnych.

Nagłówek i stopka zawierają następujące pola:

Pole Opis
AlignWithMargins Ustawia wyrównanie nagłówka i stopki względem marginesów strony
DifferentFirst Ustawia nagłówek i stopkę dla pierwszej strony
DifferentOddEven Ustawia nagłówek i stopkę dla stron nieparzystych i parzystych
ScaleWithDoc Ustawia nagłówek i stopkę tak, aby skalowały się wraz z dokumentem
OddFooter Znak kontrolny dla stopki stron nieparzystych, używany do ustawienia stopki dla pierwszej strony, gdy wartość DifferentOddEven wynosi false
OddHeader Znak kontrolny dla nagłówka stron nieparzystych, używany do ustawienia nagłówka dla pierwszej strony, gdy wartość DifferentOddEven wynosi false
EvenFooter Znak kontrolny dla stopki stron parzystych
EvenHeader Znak kontrolny dla nagłówka stron parzystych
FirstFooter Znak kontrolny dla stopki pierwszej strony
FirstHeader Znak kontrolny dla nagłówka pierwszej strony

Poniższa tabela zawiera kody formatu, które można użyć dla 6 pól typu łańcuchowego: OddHeader, OddFooter, EvenHeader, EvenFooter, FirstFooter, FirstHeader

Kod formatu Opis
&& Znak "&"
&font-size Rozmiar czcionki tekstu, gdzie rozmiar czcionki jest dziesiętnym rozmiarem czcionki w punktach
&"nazwa czcionki,typ czcionki" Łańcuch znakowy nazwy czcionki tekstu, nazwa czcionki i łańcuch typu czcionki tekstu, typ czcionki
&"-,Regular" Formatowanie tekstu standardowego. Wyłącza pogrubienie i kursywę
&A Aktualna nazwa arkusza
&B lub &"-,Bold" Formatowanie tekstu pogrubionego, wyłączone lub włączone, domyślnie wyłączone
&D Aktualna data
&C Sekcja centralna
&E Podwójne podkreślenie tekstu
&F Nazwa pliku bieżącego skoroszytu
&G Określenie obiektu jako tła (aktualnie nieobsługiwane)
&H Cień tekstu
&I lub &"-,Italic" Kursywa tekstu
&K Format koloru czcionki w formacie RGB koloru RRGGBB. Kolory tematu są określone jako TTSNNN, gdzie TT to identyfikator koloru tematu, S to barwa lub odcień "+", "-", to wartość barwy lub odcienia
&L Sekcja lewa
&N Całkowita liczba stron
&O Formatowanie tekstu z zarysowaniem
&P[[+\|-]n] Jeśli nie ma przyrostka opcjonalnego, bieżący numer strony (dziesiętny)
&R Sekcja prawa
&S Przekreślenie tekstu
&T Aktualny czas
&U Dodaje pojedyncze podkreślenie tekstu. Domyślny tryb jest wyłączony
&X Format indeksu górnego
&Y Format indeksu dolnego
&Z Aktualna ścieżka pliku skoroszytu

Na przykład:

err := f.SetHeaderFooter("Arkusz1", &excelize.HeaderFooterOptions{
    DifferentFirst:   true,
    DifferentOddEven: true,
    OddHeader:        "&R&P",
    OddFooter:        "&C&F",
    EvenHeader:       "&L&P",
    EvenFooter:       "&L&D&R&T",
    FirstHeader:      `&CCenter &"-,Bold"Bold&"-,Regular"NagłówekU+000A&D`,
})

Przykład powyżej zawiera następujący format:

  • Pierwsza strona ma własny nagłówek i stopkę
  • Strony nieparzyste i parzyste posiadają różne nagłówki i stopki
  • Prawa część nagłówka strony nieparzystej to aktualny numer strony
  • Środkowa część stopki strony nieparzystej to nazwa pliku aktualnego skoroszytu
  • Lewa część to aktualny numer strony w nagłówku strony parzystej
  • Lewa część to aktualna data, a prawa część stopki strony parzystej to aktualny czas
  • Tekst w pierwszym wierszu w części centralnej pierwszej strony to "Nagłówek pogrubiony środek", a drugi wiersz to data
  • Na pierwszej stronie nie ma stopki

Ustawienie Nazwy

func (f *File) SetDefinedName(definedName *DefinedName) error

Ustawia nazwę i zakres odwołań na podstawie podanej nazwy. Domyślnym zakresem jest skoroszyt. Na przykład:

err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "Kwota",
    RefersTo: "Arkusz1!$A$2:$D$5",
    Comment:  "komentarz do nazwy",
    Scope:    "Arkusz2",
})

Ustawianie obszaru wydruku i tytułów wydruku arkusza:

Ustawianie obszaru wydruku i tytułów wydruku arkusza

if err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "_xlnm.Print_Area",
    RefersTo: "Arkusz1!$A$1:$Z$100",
    Scope:    "Arkusz1",
}); err != nil {
    fmt.Println(err)
}
if err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "_xlnm.Print_Titles",
    RefersTo: "Arkusz1!$A:$A,Arkusz1!$1:$1",
    Scope:    "Arkusz1",
}); err != nil {
    fmt.Println(err)
}

Pobieranie Nazwy

func (f *File) GetDefinedName() []DefinedName

Pobiera listę nazw skoroszytu i arkusza w określonym zakresie.

Usuwanie Nazwy

func (f *File) DeleteDefinedName(definedName *DefinedName) error

Usuwa zdefiniowaną nazwę na podstawie podanej nazwy i zakresu nazwy. Domyślnym zakresem jest skoroszyt. Na przykład:

err := f.DeleteDefinedName(&excelize.DefinedName{
    Name:     "Kwota",
    Scope:    "Arkusz2",
})

Ustawianie Właściwości Aplikacji Skoroszytu

func (f *File) SetAppProps(appProperties *AppProperties) error

Ustawia właściwości aplikacji skoroszytu. Właściwości, które można ustawić, obejmują:

Właściwość Opis
Aplikacja Nazwa aplikacji, która utworzyła ten dokument
ScaleCrop Określa wyświetlanie miniatury dokumentu. Ustawienie na true skaluje miniaturę dokumentu, a false przycina miniaturę dokumentu
DocSecurity Poziom zabezpieczeń dokumentu przedstawiony jako wartość liczbową
Firma Nazwa firmy powiązana z dokumentem
LinksUpToDate Określa, czy hiperłącza w dokumencie są aktualne. Ustawienie na true oznacza zaktualizowane hiperłącza, a false oznacza przestarzałe hiperłącza
HyperlinksChanged Określa, czy nowe hiperłącza określone w tej sekcji powinny zostać użyte do zaktualizowania relacji hiperłączy przy następnym otwarciu dokumentu
AppVersion Określa wersję aplikacji, która wygenerowała ten dokument. Wartość powinna być w formacie XX.YYYY, gdzie X i Y są wartościami liczbowymi, w przeciwnym razie plik nie będzie zgodny ze standardem

Na przykład:

err := f.SetAppProps(&excelize.AppProperties{
    Application:       "Microsoft Excel",
    ScaleCrop:         true,
    DocSecurity:       3,
    Company:           "Nazwa Firmy",
    LinksUpToDate:     true,
    HyperlinksChanged: true,
    AppVersion:        "16.0000",
})

Pobieranie Właściwości Aplikacji Skoroszytu

func (f *File) GetAppProps() (*AppProperties, error)

Pobiera właściwości aplikacji skoroszytu.

Ustawianie właściwości dokumentu

func (f *File) SetDocProps(docProperties *DocProperties) error

Ustawia podstawowe właściwości skoroszytu. Właściwości, które można ustawić, obejmują:

Właściwość Opis
Kategoria Kategoria zawartości dokumentu
StatusZawartości Status zawartości dokumentu. Na przykład wartości mogą obejmować "Szkic", "Przejrzane" i "Ostateczne"
Utworzono Czas utworzenia dokumentu, przedstawiony w formacie ISO 8601 UTC, na przykład 2019-06-04T22:00:10Z
Twórca Twórca dokumentu
Opis Opis zasobu
Identyfikator Wyraźne odniesienie do zasobu w określonym kontekście zasobu
Słowa kluczowe Słowa kluczowe dokumentu
Język Główny język zawartości dokumentu
OstatnioModyfikowanyPrzez Użytkownik, który ostatnio modyfikował dokument
Zmodyfikowano Czas modyfikacji dokumentu, przedstawiony w formacie ISO 8601 UTC, na przykład 2019-06-04T22:00:10Z
Wersja Wersja dokumentu
Temat Temat dokumentu
Tytuł Tytuł dokumentu
Wersja Numer wersji, który jest ustawiany przez użytkownika lub aplikację

Przykład:

err := f.SetDocProps(&excelize.DocProperties{
    Category:       "kategoria",
    ContentStatus:  "Szkic",
    Created:        "2019-06-04T22:00:10Z",
    Creator:        "Go Excelize",
    Description:    "Ten plik został utworzony przez Go Excelize",
    Identifier:     "xlsx",
    Keywords:       "Arkusz kalkulacyjny",
    LastModifiedBy: "Autor Go",
    Modified:       "2019-06-04T22:00:10Z",
    Revision:       "0",
    Subject:        "Testowy temat",
    Title:          "Testowy tytuł",
    Language:       "en-US",
    Version:        "1.0.0",
})

Pobieranie właściwości dokumentu

func (f *File) GetDocProps() (*DocProperties, error)

Pobiera podstawowe właściwości skoroszytu.

Zabezpieczenie skoroszytu

func (f *File) ProtectWorkbook(opts *WorkbookProtectionOptions) error

Zabezpiecza strukturę skoroszytu hasłem, aby zapobiec innym użytkownikom przeglądaniu ukrytych arkuszy, dodawaniu, przenoszeniu lub ukrywaniu arkuszy oraz zmienianiu nazw arkuszy. Pole AlgorithmName obsługuje określanie algorytmów skrótu XOR, MD4, MD5, SHA-1, SHA-256, SHA-384 lub SHA-512. Jeśli nie zostanie określony żaden algorytm skrótu, domyślnie używany jest algorytm XOR. Na przykład, zabezpiecz strukturę skoroszytu hasłem:

err := f.ProtectWorkbook(&excelize.WorkbookProtectionOptions{
    Password:      "hasło",
    LockStructure: true,
})

WorkbookProtectionOptions definiuje opcje zabezpieczania skoroszytu.

type WorkbookProtectionOptions struct {
    AlgorithmName string
    Password      string
    LockStructure bool
    LockWindows   bool
}

Odblokowanie skoroszytu

func (f *File) UnprotectWorkbook(password ...string) error

Usuwa zabezpieczenie skoroszytu, określając opcjonalny parametr hasła weryfikującego.