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
:
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:
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.