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