| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 | // Copyright 2016 - 2021 The excelize Authors. All rights reserved. Use of// this source code is governed by a BSD-style license that can be found in// the LICENSE file.//// Package excelize providing a set of functions that allow you to write to// and read from XLSX / XLSM / XLTM files. Supports reading and writing// spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports// complex components by high compatibility, and provided streaming API for// generating or reading data from a worksheet with huge amounts of data. This// library needs Go version 1.15 or later.package excelizeimport "encoding/xml"// xlsxTheme directly maps the theme element in the namespace// http://schemas.openxmlformats.org/drawingml/2006/maintype xlsxTheme struct {	ThemeElements     xlsxThemeElements     `xml:"themeElements"`	ObjectDefaults    xlsxObjectDefaults    `xml:"objectDefaults"`	ExtraClrSchemeLst xlsxExtraClrSchemeLst `xml:"extraClrSchemeLst"`	ExtLst            *xlsxExtLst           `xml:"extLst"`}// objectDefaults element allows for the definition of default shape, line,// and textbox formatting properties. An application can use this information// to format a shape (or text) initially on insertion into a document.type xlsxObjectDefaults struct {	ObjectDefaults string `xml:",innerxml"`}// xlsxExtraClrSchemeLst element is a container for the list of extra color// schemes present in a document.type xlsxExtraClrSchemeLst struct {	ExtraClrSchemeLst string `xml:",innerxml"`}// xlsxThemeElements directly maps the element defines the theme formatting// options for the theme and is the workhorse of the theme. This is where the// bulk of the shared theme information is contained and used by a document.// This element contains the color scheme, font scheme, and format scheme// elements which define the different formatting aspects of what a theme// defines.type xlsxThemeElements struct {	ClrScheme  xlsxClrScheme  `xml:"clrScheme"`	FontScheme xlsxFontScheme `xml:"fontScheme"`	FmtScheme  xlsxFmtScheme  `xml:"fmtScheme"`}// xlsxClrScheme element specifies the theme color, stored in the document's// Theme part to which the value of this theme color shall be mapped. This// mapping enables multiple theme colors to be chained together.type xlsxClrScheme struct {	Name     string            `xml:"name,attr"`	Children []xlsxClrSchemeEl `xml:",any"`}// xlsxFontScheme element defines the font scheme within the theme. The font// scheme consists of a pair of major and minor fonts for which to use in a// document. The major font corresponds well with the heading areas of a// document, and the minor font corresponds well with the normal text or// paragraph areas.type xlsxFontScheme struct {	Name      string        `xml:"name,attr"`	MajorFont xlsxMajorFont `xml:"majorFont"`	MinorFont xlsxMinorFont `xml:"minorFont"`	ExtLst    *xlsxExtLst   `xml:"extLst"`}// xlsxMajorFont element defines the set of major fonts which are to be used// under different languages or locals.type xlsxMajorFont struct {	Children []xlsxFontSchemeEl `xml:",any"`}// xlsxMinorFont element defines the set of minor fonts that are to be used// under different languages or locals.type xlsxMinorFont struct {	Children []xlsxFontSchemeEl `xml:",any"`}// xlsxFmtScheme element contains the background fill styles, effect styles,// fill styles, and line styles which define the style matrix for a theme. The// style matrix consists of subtle, moderate, and intense fills, lines, and// effects. The background fills are not generally thought of to directly be// associated with the matrix, but do play a role in the style of the overall// document. Usually, a given object chooses a single line style, a single// fill style, and a single effect style in order to define the overall final// look of the object.type xlsxFmtScheme struct {	Name           string             `xml:"name,attr"`	FillStyleLst   xlsxFillStyleLst   `xml:"fillStyleLst"`	LnStyleLst     xlsxLnStyleLst     `xml:"lnStyleLst"`	EffectStyleLst xlsxEffectStyleLst `xml:"effectStyleLst"`	BgFillStyleLst xlsxBgFillStyleLst `xml:"bgFillStyleLst"`}// xlsxFillStyleLst element defines a set of three fill styles that are used// within a theme. The three fill styles are arranged in order from subtle to// moderate to intense.type xlsxFillStyleLst struct {	FillStyleLst string `xml:",innerxml"`}// xlsxLnStyleLst element defines a list of three line styles for use within a// theme. The three line styles are arranged in order from subtle to moderate// to intense versions of lines. This list makes up part of the style matrix.type xlsxLnStyleLst struct {	LnStyleLst string `xml:",innerxml"`}// xlsxEffectStyleLst element defines a set of three effect styles that create// the effect style list for a theme. The effect styles are arranged in order// of subtle to moderate to intense.type xlsxEffectStyleLst struct {	EffectStyleLst string `xml:",innerxml"`}// xlsxBgFillStyleLst  element defines a list of background fills that are// used within a theme. The background fills consist of three fills, arranged// in order from subtle to moderate to intense.type xlsxBgFillStyleLst struct {	BgFillStyleLst string `xml:",innerxml"`}// xlsxClrScheme specifies the theme color, stored in the document's Theme// part to which the value of this theme color shall be mapped. This mapping// enables multiple theme colors to be chained together.type xlsxClrSchemeEl struct {	XMLName xml.Name	SysClr  *xlsxSysClr    `xml:"sysClr"`	SrgbClr *attrValString `xml:"srgbClr"`}// xlsxFontSchemeEl directly maps the major and minor font of the style's font// scheme.type xlsxFontSchemeEl struct {	XMLName     xml.Name	Script      string `xml:"script,attr,omitempty"`	Typeface    string `xml:"typeface,attr"`	Panose      string `xml:"panose,attr,omitempty"`	PitchFamily string `xml:"pitchFamily,attr,omitempty"`	Charset     string `xml:"charset,attr,omitempty"`}// xlsxSysClr element specifies a color bound to predefined operating system// elements.type xlsxSysClr struct {	Val     string `xml:"val,attr"`	LastClr string `xml:"lastClr,attr"`}
 |