Arbeitsmappe

Options definiert die Optionen zum Lesen und Schreiben von Tabellenkalkulationen.

type Options struct {
    MaxCalcIterations uint
    Password          string
    RawCellValue      bool
    UnzipSizeLimit    int64
    UnzipXMLSizeLimit int64
    ShortDatePattern  string
    LongDatePattern   string
    LongTimePattern   string
    CultureInfo       CultureName
}

MaxCalcIterations wird verwendet, um die maximale Anzahl von Iterationen bei der Berechnung von Formeln anzugeben, mit einem Standardwert von 0.

Password wird verwendet, um das Passwort für das Öffnen und Speichern der Arbeitsmappe im Klartext anzugeben, mit einem Standardwert von leer.

RawCellValue wird verwendet, um anzugeben, ob der Rohwert beim Lesen von Zellenwerten abgerufen werden soll, mit einem Standardwert von false (Anwendung des Zahlenformats).

UnzipSizeLimit wird verwendet, um die Größenbeschränkung (in Bytes) für die Dekomprimierung beim Öffnen eines Tabellendokuments anzugeben, die größer oder gleich UnzipXMLSizeLimit sein sollte, mit einer Standardbeschränkung von 16 GB.

UnzipXMLSizeLimit wird verwendet, um die Speicherbeschränkung (in Bytes) beim Dekomprimieren jeder Arbeitsblatt- und gemeinsamen Texttabelle anzugeben. Wenn die Größe diesen Wert überschreitet, wird die Arbeitsblatt-XML-Datei in das temporäre Systemverzeichnis dekomprimiert. Dieser Wert sollte kleiner oder gleich UnzipSizeLimit sein, mit einer Standardbeschränkung von 16 MB.

ShortDatePattern wird verwendet, um den numerischen Formatcode für das kurze Datumsformat anzugeben.

LongDatePattern wird verwendet, um den numerischen Formatcode für das lange Datumsformat anzugeben.

LongTimePattern wird verwendet, um den numerischen Formatcode für das lange Zeitformat anzugeben.

CultureInfo wird verwendet, um das regionale Format anzugeben, das beim Lesen von Zahlenformaten verwendet wird, die von länderspezifischen Datums- und Uhrzeiteinstellungen beeinflusst werden.

Erstellen

func NewFile(opts ...Options) *File

Verwenden Sie NewFile, um eine neue Excel-Arbeitsmappe zu erstellen, die standardmäßig ein Arbeitsblatt mit dem Namen Sheet1 enthält.

Öffnen

func OpenFile(filename string, opts ...Options) (*File, error)

Verwenden Sie OpenFile, um ein vorhandenes Excel-Dokument zu öffnen. Öffnen Sie beispielsweise ein Tabellendokument mit Passwortschutz:

f, err := excelize.OpenFile("Book1.xlsx", excelize.Options{Password: "password"})
if err != nil {
    return
}

Verwenden Sie Close(), um die geöffnete Arbeitsmappe zu schließen.

Datenstrom öffnen

func OpenReader(r io.Reader, opts ...Options) (*File, error)

OpenReader liest Daten aus io.Reader.

Im folgenden Beispiel erstellen wir einen einfachen HTTP-Server, um hochgeladene Tabellendokumente zu empfangen, fügen ein neues Arbeitsblatt zum empfangenen Dokument hinzu und geben eine Download-Antwort zurück:

package main

import (
    "fmt"
    "net/http"

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

func process(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.OpenReader(file)
    if err != nil {
        fmt.Fprint(w, err.Error())
        return
    }
    f.Path = "Book1.xlsx"
    f.NewSheet("NewSheet")
    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("/process", process)
    http.ListenAndServe(":8090", nil)
}

Testen mit cURL:

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

Speichern

func (f *File) Save(opts ...Options) error

Verwenden Sie Save, um Bearbeitungen in einem Excel-Dokument zu speichern.

Speichern als

func (f *File) SaveAs(name string, opts ...Options) error

Verwenden Sie SaveAs, um das Excel-Dokument als eine bestimmte Datei zu speichern.

Arbeitsmappe schließen

func (f *File) Close() error

Schließen Sie die Arbeitsmappe und bereinigen Sie alle eventuell beim Öffnen des Dokuments erstellten Systemspeichercaches.

Neue Arbeitsblatt

func (f *File) NewSheet(sheet string) (int, error)

Erstellt ein neues Arbeitsblatt basierend auf dem angegebenen Arbeitsblattnamen und gibt den Index des Arbeitsblatts im Arbeitsbuch zurück. Bitte beachten Sie, dass beim Erstellen eines neuen Arbeitsbuches ein Standardarbeitsblatt namens Sheet1 enthalten sein wird.

Arbeitsblatt löschen

func (f *File) DeleteSheet(sheet string) error

Löscht das angegebene Arbeitsblatt basierend auf dem angegebenen Arbeitsblattnamen. Verwenden Sie diese Methode mit Vorsicht, da sie Formeln, Verweise, Diagramme und andere mit dem gelöschten Arbeitsblatt verbundene Elemente beeinflusst. Wenn andere Komponenten Werte im gelöschten Arbeitsblatt referenzieren, wird ein Fehler angezeigt, und es kann sogar dazu führen, dass das Arbeitsbuch nicht geöffnet werden kann. Der Aufruf dieser Methode ist ungültig, wenn das Arbeitsbuch nur ein Arbeitsblatt enthält.

Arbeitsblatt kopieren

func (f *File) CopySheet(from, to int) error

Kopiert das Arbeitsblatt basierend auf dem angegebenen Quellarbeitsblatt und dem Index des Zielarbeitsblatts. Der Entwickler muss bestätigen, ob der Index des Zielarbeitsblatts bereits vorhanden ist. Derzeit wird nur das Kopieren von Arbeitsblättern unterstützt, die Zellwerte und Formeln enthalten, während das Kopieren von Arbeitsblättern, die Tabellen, Bilder, Diagramme und Pivot-Tabellen enthalten, nicht unterstützt wird.

// Das Arbeitsblatt namens Sheet1 existiert bereits ...
index, err := f.NewSheet("Sheet2")
if err != nil {
    fmt.Println(err)
    return
}
err := f.CopySheet(1, index)

Arbeitsblätter gruppieren

func (f *File) GroupSheets(sheets []string) error

Gruppiert die Arbeitsblätter basierend auf den angegebenen Arbeitsblattnamen, und das Standardarbeitsblatt muss in den angegebenen Arbeitsblättern enthalten sein.

Arbeitsblätter aufheben

func (f *File) UngroupSheets() error

Löst die Gruppierung der Arbeitsblätter auf.

Arbeitsblatt-Hintergrundbild einstellen

func (f *File) SetSheetBackground(sheet, picture string) error

Setzt ein kachelbares Hintergrundbild für das angegebene Arbeitsblatt basierend auf dem angegebenen Arbeitsblattnamen und dem Bildpfad. Unterstützte Bildformate sind: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF und WMZ.

func (f *File) SetSheetBackgroundFromBytes(sheet, extension string, picture []byte) error

Setzt ein kachelbares Hintergrundbild für das angegebene Arbeitsblatt basierend auf dem Arbeitsblattnamen, der Bildformat-Erweiterung und den Bilddaten. Unterstützte Bildformate sind: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF und WMZ.

Standard-Arbeitsblatt einstellen

func (f *File) SetActiveSheet(index int)

Setzt das Standard-Arbeitsblatt basierend auf dem angegebenen Indexwert, wobei der Wert größer oder gleich 0 und kleiner als die kumulative Gesamtanzahl der Arbeitsblätter im Arbeitsbuch sein sollte.

Index des Standard-Arbeitsblatts abrufen

func (f *File) GetActiveSheetIndex() int

Ruft den Index des Standard-Arbeitsblatts ab und gibt 0 zurück, wenn kein Standard-Arbeitsblatt gefunden wird.

Arbeitsblatt-Sichtbarkeit einstellen

func (f *File) SetSheetVisible(sheet string, visible bool, veryHidden ...bool) error

Stellt die Sichtbarkeit des Arbeitsblatts basierend auf dem angegebenen Arbeitsblattnamen und dem Sichtbarkeitsparameter ein. Ein Arbeitsbuch muss mindestens ein sichtbares Arbeitsblatt enthalten. Wenn das angegebene Arbeitsblatt das Standard-Arbeitsblatt ist, ist die Sichtbarkeitseinstellung ungültig. Der optionale dritte Parameter veryHidden ist nur gültig, wenn der Parameterwert visible false ist.

Zum Beispiel, um das Arbeitsblatt mit dem Namen "Sheet1" zu verbergen:

err := f.SetSheetVisible("Sheet1", false)

Arbeitsblatt-Sichtbarkeit abrufen

func (f *File) GetSheetVisible(sheet string) (bool, error)

Ruft die Sichtbarkeitseinstellung des Arbeitsblatts basierend auf dem angegebenen Arbeitsblattnamen ab. Zum Beispiel, um die Sichtbarkeitseinstellung des Arbeitsblatts mit dem Namen "Sheet1" abzurufen:

visible, err := f.GetSheetVisible("Sheet1")

Setzen von Tabelleneigenschaften

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

Setzen Sie die Eigenschaften eines bestimmten Arbeitsblatts basierend auf dem angegebenen Arbeitsblattnamen und den Eigenschaftsoptionen. Die unterstützten Arbeitsblattoptionen sind wie folgt:

Eigenschaft Typ Beschreibung
CodeName *string Codename
EnableFormatConditionsCalculation *bool Legen Sie fest, ob bedingte Formatierung automatisch berechnet wird, mit einem Standardwert von true
Veröffentlicht *bool Legen Sie fest, ob das Arbeitsblatt veröffentlicht ist, mit einem Standardwert von true
AutoPageBreaks *bool Legen Sie fest, ob das Arbeitsblatt automatisch Seiten umbricht, mit einem Standardwert von true
AnSeiteAnpassen *bool Legen Sie fest, ob die Anpassung an die Seite aktiviert ist, mit einem Standardwert von false
TabellenfarbeIndexiert *int Verwendet für rückwärtskompatible indexierte Farbwerte
TabellenfarbeRGB *string Standard ARGB-Farbwert
TabellenfarbeThema *int Themenfarbindex, beginnend bei 0
TabellenfarbeTönung *float64 Tönungswert, der auf die Farbe angewendet wird, mit einem Standardwert von 0.0
ZusammenfassungUnten *bool Legen Sie die Ausrichtung der Gliederung fest, ob unterhalb der Detaildaten, mit einem Standardwert von true
ZusammenfassungRechts *bool Legen Sie die Ausrichtung der Gliederung fest, ob rechts von den Detaildaten, mit einem Standardwert von true
GrundColBreite *uint8 Grundbreite einer Spalte in Zeichen dargestellt, mit einem Standardwert von 8
StandardSpaltenbreite *float64 Standardspaltenbreite einschließlich Ränder und Gitterlinien
StandardZeilenhöhe *float64 Zeilenhöhe in Punkten dargestellt
BenutzerdefinierteHöhe *bool Legen Sie fest, ob benutzerdefinierte Zeilenhöhe angewendet wird, mit einem Standardwert von false
NullHöhe *bool Legen Sie fest, ob Zeilen standardmäßig ausgeblendet werden, mit einem Standardwert von false
DickeOben *bool Legen Sie fest, ob Zeilen standardmäßig einen starken oberen Rand haben, mit einem Standardwert von false
DickeUnten *bool Legen Sie fest, ob Zeilen standardmäßig einen starken unteren Rand haben, mit einem Standardwert von false

Beispiel: Um die Standardzeile im Arbeitsblatt namens Sheet1 zu verstecken:

Set sheet properties

f, aktivieren := excelize.NewFile(), true
if err := f.SetSheetProps("Sheet1", &excelize.SheetPropsOptions{
    NullHöhe: &aktivieren,
}); err != nil {
    fmt.Println(err)
}
if err := f.SetRowVisible("Sheet1", 10, true); err != nil {
    fmt.Println(err)
}
f.SaveAs("Buch1.xlsx")

Abrufen von Tabelleneigenschaften

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

Erhalten Sie die Eigenschaften eines bestimmten Arbeitsblatts basierend auf dem angegebenen Arbeitsblattnamen.

Setzen von Blattansichtseigenschaften

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

Basierend auf dem gegebenen Blattnamen, der Ansichtsindex und den Ansichtsoptionen werden die Blattansichtseigenschaften festgelegt. viewIndex kann eine negative Zahl sein, in diesem Fall erfolgt die Zählung rückwärts (-1 repräsentiert die letzte Ansicht). Die unterstützten Optionen zum Festlegen von Blattansichtseigenschaften sind wie folgt:

Eigenschaft Typ Beschreibung
DefaultGridColor *bool Gibt an, ob die Standardgitterfarbe verwendet werden soll, Standardwert ist true
RightToLeft *bool Gibt an, ob von rechts nach links angezeigt werden soll, Standardwert ist false
ShowFormulas *bool Gibt an, ob das Arbeitsblatt Formeln anzeigt, Standardwert ist false
ShowGridLines *bool Gibt an, ob das Arbeitsblatt Gitterlinien anzeigt, Standardwert ist true
ShowRowColHeaders *bool Gibt an, ob das Arbeitsblatt Zeilen- und Spaltenüberschriften anzeigt, Standardwert ist true
ShowRuler *bool Gibt an, ob im Seitenlayout die Lineale angezeigt werden, Standardwert ist true
ShowZeros *bool Gibt an, ob Nullwerte in Zellen angezeigt werden sollen, Standardwert ist true, andernfalls werden sie als leer angezeigt
TopLeftCell *string Gibt die Koordinate der sichtbaren oberen linken Zelle an
View *string Gibt den Typ der Arbeitsblattansicht an, mit enum-Werten normal, pageBreakPreview und pageLayout
ZoomScale *float64 Aktueller Zoomfaktor des Anzeigefensters, begrenzt auf einen Bereich von 10 bis 400, Standardwert ist 100

Abrufen von Blattansichtseigenschaften

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

Die Blattansichtseigenschaften werden anhand des angegebenen Blattnamens und des Ansichtsindex abgerufen. viewIndex kann eine negative Zahl sein, in diesem Fall erfolgt die Zählung rückwärts (-1 repräsentiert die letzte Ansicht).

Arbeitsblattseitenlayout festlegen

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

Legen Sie die Seitenaufbauattribute des Arbeitsblatts basierend auf dem angegebenen Arbeitsblattnamen und den Seitenaufbau-Parametern fest. Aktuell unterstützte Seitenaufbauattribute sind:

Das Attribut Size wird verwendet, um die Seitenpapiergröße anzugeben. Die Standardgröße des Seitenlayouts beträgt "Letter 8½ × 11 Zoll". In der folgenden Tabelle ist die Beziehung zwischen den Seitenlayoutgrößen und dem Index Size-Parameter in Excelize aufgeführt:

Index Papiergröße
1 Letter 8½ × 11 Zoll
2 Kleiner Brief 8½ × 11 Zoll
3 Tabloid 11 × 17 Zoll
4 Ledger 17 × 11 Zoll
... ...
40 Deutscher Standard-Fächer 8.5 × 12 Zoll
41 Deutsches Rechtsbrief-Fächer 8.5 × 13 Zoll
42 ISO B4 250 × 353 mm
43 Japanische Postkarte 100 × 148 mm
44 Standardpapier 9 × 11 Zoll
45 Standardpapier 10 × 11 Zoll
46 Standardpapier 15 × 11 Zoll
47 Einladungsbrief 220 × 220 mm
50 Briefkopf vergrößert 9.275 × 12 Zoll
51 Extra großes Rechtsbriefpapier 9.275 × 15 Zoll
52 Zusätzliches Tabloidpapier 11.69 × 18 Zoll
53 A4 extra groß 236 × 322 mm
54 Briefkopf Querformat 8.275 × 11 Zoll
55 A4 Querformat 210 × 297 mm
56 Briefkopf extra groß Querformat 9.275 × 12 Zoll
57 SuperA/SuperA/A4 Papier 227 × 356 mm
58 SuperB/SuperB/A3 Papier 305 × 487 mm
59 Briefkopf vergrößert 8.5 × 12.69 Zoll
60 A4 vergrößert 210 × 330 mm
61 A5 Querformat 148 × 210 mm
62 JIS B5 Querformat 182 × 257 mm
63 A3 extra groß 322 × 445 mm
64 A5 extra groß 174 × 235 mm
65 ISO B5 extra groß 201 × 276 mm
66 A2 420 × 594 mm
67 A3 Querformat 297 × 420 mm
68 A3 extra groß Querformat 322 × 445 mm
69 Doppelte japanische Postkarte 200 × 148 mm
70 A6 105 × 148 mm
71 Japanischer Umschlag Kaku #2
72 Japanischer Umschlag Kaku #3
73 Japanischer Umschlag Chou #3
74 Japanischer Umschlag Chou #4
75 Briefkopf Querformat 11 × 8½ Zoll
76 A3 Querformat 420 × 297 mm
77 A4 Querformat 297 × 210 mm
78 A5 Querformat 210 × 148 mm
79 B4 (JIS) Querformat 364 × 257 mm
80 B5 (JIS) Querformat 257 × 182 mm
81 Japanische Postkarte Querformat 148 × 100 mm
82 Doppelte japanische Postkarte Querformat 148 × 200 mm
83 A6 Querformat 148 × 105 mm
84 Japanischer Umschlag Kaku #2 Querformat
85 Japanischer Umschlag Kaku #3 Querformat
86 Japanischer Umschlag Chou #3 Querformat
| 87 | Japan-Umschlag Chou #4 Querformat |
| 88 | B6 (JIS) 128 × 182 mm |
| 89 | B6 (JIS) Querformat 182 × 128 mm |
| 90 | 12 × 11 Zoll |
| 91 | Japan-Umschlag You #4 |
| 92 | Japan-Umschlag You #4 Querformat |
| 93 | Chinesisch 16K 146 × 215 mm |
| 94 | Chinesisch 32K 97 × 151 mm |
| 95 | Chinesisch Groß 32K 97 × 151 mm |
| 96 | Chinesisch Umschlag #1 102 × 165 mm |
| 97 | Chinesisch Umschlag #2 102 × 176 mm |
| 98 | Chinesisch Umschlag #3 125 × 176 mm |
| 99 | Chinesisch Umschlag #4 110 × 208 mm |
| 100 | Chinesisch Umschlag #5 110 × 220 mm |
| 101 | Chinesisch Umschlag #6 120 × 230 mm |
| 102 | Chinesisch Umschlag #7 160 × 230 mm |
| 103 | Chinesisch Umschlag #8 120 × 309 mm |
| 104 | Chinesisch Umschlag #9 229 × 324 mm |
| 105 | Chinesisch Umschlag #10 324 × 458 mm |
| 106 | Chinesisch 16K Querformat |
| 107 | Chinesisch 32K Querformat |
| 108 | Chinesisch Groß 32K Querformat |
| 109 | Chinesisch Umschlag #1 Querformat 165 × 102 mm |
| 110 | Chinesisch Umschlag #2 Querformat 176 × 102 mm |
| 111 | Chinesisch Umschlag #3 Querformat 176 × 125 mm |
| 112 | Chinesisch Umschlag #4 Querformat 208 × 110 mm |
| 113 | Chinesisch Umschlag #5 Querformat 220 × 110 mm |
| 114 | Chinesisch Umschlag #6 Querformat 230 × 120 mm |
| 115 | Chinesisch Umschlag #7 Querformat 230 × 160 mm |
| 116 | Chinesisch Umschlag #8 Querformat 309 × 120 mm |
| 117 | Chinesisch Umschlag #9 Querformat 324 × 229 mm |
| 118 | Chinesisch Umschlag #10 Querformat 458 × 324 mm |

Die Eigenschaft `Ausrichtung` wird verwendet, um die Seitenausrichtung anzugeben, wobei die Standardseitenausrichtung "Hochformat" ist und die optionalen Werte `Hochformat` und `Querformat` sind.

Die Eigenschaft `ErsteSeitennummer` wird verwendet, um die startende Seitennummer anzugeben, wobei die Standardeinstellung automatisch ist.

Die Eigenschaft `AnpassenAn` wird verwendet, um das Seitenverkleinerungsverhältnis anzugeben, mit einem Bereich von 10 bis 400, d.h., Skalierung von 10 % bis 400 %, wobei der Standardwert `100` für normale Größe ist. Das Setzen von `AnHöheAnpassen` oder `AnBreiteAnpassen` überschreibt diese Eigenschaft.

Die Eigenschaft `AnHöheAnpassen` wird verwendet, um die Seitenskalierung zur Anpassung der Seitenbreite anzugeben, mit einem Standardwert von `1`.

Die Eigenschaft `AnBreiteAnpassen` wird verwendet, um die Seitenskalierung zur Anpassung der Seitenhöhe anzugeben, mit einem Standardwert von `1`.

Die Eigenschaft `SchwarzWeiß` wird verwendet, um den monochromen Druck anzugeben, wobei die Standardeinstellung aus ist.
f := excelize.NewFile()
var (
    size                 = 10
    orientation          = "Querformat"
    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)
}

Arbeitsblatt-Seitenlayout abrufen

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

Ermitteln Sie die Seitenlayouteigenschaften des Arbeitsblatts basierend auf dem angegebenen Arbeitsblattnamen und den Seitenlayoutparametern.

Arbeitsblattseitenränder festlegen

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

Legen Sie die Seitenränder des Arbeitsblatts basierend auf dem angegebenen Arbeitsblattnamen und den Marginalparametern fest. Die unterstützten Marginaloptionen sind:

Option Typ Beschreibung
Bottom *float64 Untere Seitenbegrenzung
Footer *float64 Fußzeilenrand
Header *float64 Kopfzeilenrand
Left *float64 Linker Rand
Right *float64 Rechter Rand
Top *float64 Obere Seitenbegrenzung
Horizontal *bool Horizontale Ausrichtung der Seite
Vertikal *bool Vertikale Ausrichtung der Seite

Arbeitsblattseitenränder abrufen

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

Ermitteln Sie die Seitenränder des Arbeitsblatts basierend auf dem angegebenen Arbeitsblattnamen und den Marginalparametern.

Arbeitsmappeneigenschaften festlegen

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

SetWorkbookProps wird verwendet, um die Eigenschaften der Arbeitsmappe festzulegen. Die unterstützten Arbeitsmappeneigenschaften sind:

Eigenschaft Typ Beschreibung
Date1904 *bool Gibt an, ob die Arbeitsmappe das 1904-Datensystem verwendet
FilterPrivacy *bool Filterdatenschutz, gibt an, ob die Anwendung nach persönlichen Informationen in der Arbeitsmappe sucht
CodeName *string Codename

Arbeitsmappeneigenschaften abrufen

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

GetWorkbookProps wird verwendet, um die Eigenschaften der Arbeitsmappe zu erhalten.

Header und Fußzeile festlegen

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

Legt die Header und Footer des Arbeitsblatts basierend auf dem angegebenen Arbeitsblattnamen und Steuerzeichen fest.

Der Header und Footer umfassen die folgenden Felder:

Feld Beschreibung
AlignWithMargins Legt die Ausrichtung des Headers und Footers an den Seiträndern fest
DifferentFirst Legt den Header und Footer für die erste Seite fest
DifferentOddEven Legt den Header und Footer für ungerade und gerade Seiten fest
ScaleWithDoc Legt den Header und Footer so fest, dass sie mit dem Dokument skaliert werden
OddFooter Steuerzeichen für den Footer der ungeraden Seiten, welches verwendet wird, um den Footer für die erste Seite festzulegen, wenn der Wert von DifferentOddEven false ist
OddHeader Steuerzeichen für den Header der ungeraden Seiten, welches verwendet wird, um den Header für die erste Seite festzulegen, wenn der Wert von DifferentOddEven false ist
EvenFooter Steuerzeichen für den Footer der geraden Seiten
EvenHeader Steuerzeichen für den Header der geraden Seiten
FirstFooter Steuerzeichen für den Footer der ersten Seite
FirstHeader Steuerzeichen für den Header der ersten Seite

Die Formatcodes in der folgenden Tabelle können für die 6 String-Typ-Felder verwendet werden: OddHeader, OddFooter, EvenHeader, EvenFooter, FirstFooter, FirstHeader

Formatcode Beschreibung
&& Zeichen "&"
&Schriftgröße Textschriftgröße, wobei die Schriftgröße eine dezimale Schriftgröße in Punkten ist
&"Schriftart,Schrifttyp" Textschriftname, Schriftname und Textschrifttyp, Schrifttyp
&"-,Normal" Normaler Textformat. Fett- und Kursivmodi ausschalten
&A Aktueller Arbeitsblattname
&B oder &"-,Fett" Fettes Textformat, aus oder an, Standardmäßig aus
&D Aktuelles Datum
&C Zentrale Sektion
&E Doppelte Unterstreichung für den Text
&F Aktueller Arbeitsmappe Dateiname
&G Objekt als Hintergrund festlegen (derzeit nicht unterstützt)
&H Textschatten
&I oder &"-,Kursiv" Kursiver Text
&K Schriftfarbformat im Format von RGB-Farbe in RRGGBB. Designfarben werden als TTSNNN angegeben, wobei TT die Designfarb-ID ist, S der Farbton oder die Schattierung des "+", "-" der Wert des Farbtons oder der Schattierung ist
&L Linke Sektion
&N Gesamtanzahl der Seiten
&O Konturtextformat
&P[[+\|-]n] Wenn kein optionales Suffix vorhanden ist, aktuelle Seitenzahl (dezimal)
&R Rechte Sektion
&S Text durchgestrichen
&T Aktuelle Zeit
&U Einzelne Unterstreichung zum Text hinzufügen. Der Standardmodus ist aus
&X Hochgestelltes Format
&Y Tiefgestelltes Format
&Z Aktueller Arbeitsmappe Dateipfad

Beispiel:

err := f.SetHeaderFooter("Tabelle1", &excelize.HeaderFooterOptions{
    DifferentFirst:   true,
    DifferentOddEven: true,
    OddHeader:        "&R&P",
    OddFooter:        "&C&F",
    EvenHeader:       "&L&P",
    EvenFooter:       "&L&D&R&T",
    FirstHeader:      `&CZentriert &"-,Fett"Fett&"-,Normal"KopfU+000A&D`,
})

Das obige Beispiel enthält das folgende Format:

  • Die erste Seite hat einen eigenen Header und Footer
  • Ungerade und gerade Seiten haben unterschiedliche Header und Footer
  • Der rechte Teil des ungeraden Seitenheaders ist die aktuelle Seitenzahl
  • Der zentrale Teil des ungeraden Seitenfooters ist der Dateiname der aktuellen Arbeitsmappe
  • Der linke Teil ist die aktuelle Seitenzahl im geraden Seitenheader
  • Der linke Teil ist das aktuelle Datum, und der rechte Teil des geraden Seitenfooters ist die aktuelle Zeit
  • Der Text in der ersten Zeile im zentralen Teil der ersten Seite ist "Zentriert Fett Kopf", und die zweite Zeile ist das Datum
  • Die erste Seite hat keinen Footer

Setzen des Namens

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

Setzen Sie den Namen und den Referenzbereich basierend auf dem angegebenen Namen, wobei der Standardumfang die Arbeitsmappe ist. Zum Beispiel:

err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "Betrag",
    RefersTo: "Tabelle1!$A$2:$D$5",
    Comment:  "Kommentar zum definierten Namen",
    Scope:    "Tabelle2",
})

Festlegen des Druckbereichs und der Drucktitel des Arbeitsblatts:

Festlegen des Druckbereichs und der Drucktitel des Arbeitsblatts

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

Namen abrufen

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

Holen Sie sich die Liste der Namen der Arbeitsmappe und des Arbeitsblatts innerhalb des Bereichs.

Namen löschen

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

Löschen Sie den definierten Namen basierend auf dem angegebenen Namen und Namensumfang, wobei der Standardumfang die Arbeitsmappe ist. Zum Beispiel:

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

Anwendungseigenschaften der Arbeitsmappe setzen

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

Setzen Sie die Anwendungseigenschaften der Arbeitsmappe. Die festgelegten Eigenschaften umfassen:

Eigenschaft Beschreibung
Anwendung Der Name der Anwendung, die dieses Dokument erstellt hat
ScaleCrop Legt die Anzeige des Dokumentvorschaubilds fest. Setzen Sie true, um das Dokumentvorschaubild zu skalieren, und false, um das Dokumentvorschaubild zu beschneiden
DocSecurity Die Dokumentsicherheitsstufe, dargestellt als numerischer Wert
Unternehmen Der Name des Unternehmens, das mit dem Dokument verbunden ist
LinksUpToDate Legt fest, ob die Hyperlinks im Dokument auf dem neuesten Stand sind. Setzen Sie true für aktualisierte Hyperlinks und false für veraltete Hyperlinks
HyperlinksChanged Legt fest, ob die neuen Hyperlinks, die in diesem Abschnitt angegeben sind, verwendet werden sollen, um Hyperlink-Beziehungen beim nächsten Öffnen dieses Dokuments zu aktualisieren
AppVersion Gibt die Version der Anwendung an, die dieses Dokument generiert hat. Der Wert sollte im Format XX.YYYY sein, wobei X und Y numerische Werte sind, andernfalls entspricht die Datei nicht dem Standard

Zum Beispiel:

err := f.SetAppProps(&excelize.AppProperties{
    Anwendung:          "Microsoft Excel",
    ScaleCrop:          true,
    DocSecurity:        3,
    Unternehmen:        "Firmenname",
    LinksUpToDate:      true,
    HyperlinksChanged:  true,
    AppVersion:         "16.0000",
})

Anwendungseigenschaften der Arbeitsmappe abrufen

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

Holen Sie sich die Anwendungseigenschaften der Arbeitsmappe.

Dokumenteigenschaften setzen

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

Setzen Sie die Kern-Eigenschaften der Arbeitsmappe. Die Eigenschaften, die festgelegt werden können, umfassen:

Eigenschaft Beschreibung
Kategorie Die Kategorie des Dokumentinhalts
Status des Inhalts Der Status des Dokumentinhalts. Zum Beispiel können Werte "Entwurf", "Geprüft" und "Final" enthalten sein
Erstellt Die Zeit, zu der das Dokument erstellt wurde, dargestellt im ISO 8601 UTC-Format, z.B.2019-06-04T22:00:10Z
Ersteller Der Ersteller des Dokuments
Beschreibung Die Beschreibung des Ressourceninhalts
Kennung Eine klare Referenz auf die Ressource in einem bestimmten Kontext
Stichwörter Stichwörter des Dokuments
Sprache Die Hauptsprache des Dokumentinhalts
Zuletzt Geändert von Der Benutzer, der das Dokument zuletzt geändert hat
Geändert Die Zeit, zu der das Dokument geändert wurde, dargestellt im ISO 8601 UTC-Format, z.B.2019-06-04T22:00:10Z
Version Die Revisionsversion des Dokuments
Thema Das Thema des Dokuments
Titel Der Titel des Dokuments
Version Die Versionsnummer, die vom Benutzer oder der Anwendung festgelegt wird

Beispiel:

err := f.SetDocProps(&excelize.DocProperties{
    Category:       "Kategorie",
    ContentStatus:  "Entwurf",
    Created:        "2019-06-04T22:00:10Z",
    Creator:        "Go Excelize",
    Description:    "Diese Datei wurde von Go Excelize erstellt",
    Identifier:     "xlsx",
    Keywords:       "Tabellenkalkulation",
    LastModifiedBy: "Go Autor",
    Modified:       "2019-06-04T22:00:10Z",
    Revision:       "0",
    Subject:        "Testthema",
    Title:          "Testtitel",
    Language:       "de-DE",
    Version:        "1.0.0",
})

Dokumenteigenschaften abrufen

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

Die Kern-Eigenschaften der Arbeitsmappe abrufen.

Arbeitsmappe schützen

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

Schützen Sie die Struktur der Arbeitsmappe mit einem Passwort, um zu verhindern, dass andere Benutzer versteckte Arbeitsblätter anzeigen, Arbeitsblätter hinzufügen, verschieben oder ausblenden und Arbeitsblätter umbenennen. Das Feld Algorithmusname unterstützt die Angabe von Hash-Algorithmen XOR, MD4, MD5, SHA-1, SHA-256, SHA-384 oder SHA-512. Wenn kein Hash-Algorithmus angegeben ist, wird standardmäßig der XOR-Algorithmus verwendet. Zum Beispiel, schützen Sie die Struktur der Arbeitsmappe mit einem Passwort:

err := f.ProtectWorkbook(&excelize.WorkbookProtectionOptions{
    Passwort:      "passwort",
    StrukturSperren: true,
})

WorkbookProtectionOptions definiert die Optionen zum Schützen der Arbeitsmappe.

type WorkbookProtectionOptions struct {
    Algorithmusname string
    Passwort      string
    StrukturSperren bool
    FensterSperren   bool
}

Arbeitsmappe entsperren

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

Entsperren Sie die Arbeitsmappe und geben Sie optional ein Passwort an, um den Schutz der Arbeitsmappe zu überprüfen und zu entfernen.