| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114 |
- // Copyright 2016 - 2023 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 XLAM / XLSM / XLSX / XLTM / XLTX 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.16 or later.
- package excelize
- import (
- "encoding/xml"
- "sync"
- )
- // xlsxWorksheet directly maps the worksheet element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main.
- type xlsxWorksheet struct {
- sync.Mutex
- XMLName xml.Name `xml:"http://schemas.openxmlformats.org/spreadsheetml/2006/main worksheet"`
- SheetPr *xlsxSheetPr `xml:"sheetPr"`
- Dimension *xlsxDimension `xml:"dimension"`
- SheetViews *xlsxSheetViews `xml:"sheetViews"`
- SheetFormatPr *xlsxSheetFormatPr `xml:"sheetFormatPr"`
- Cols *xlsxCols `xml:"cols"`
- SheetData xlsxSheetData `xml:"sheetData"`
- SheetCalcPr *xlsxInnerXML `xml:"sheetCalcPr"`
- SheetProtection *xlsxSheetProtection `xml:"sheetProtection"`
- ProtectedRanges *xlsxInnerXML `xml:"protectedRanges"`
- Scenarios *xlsxInnerXML `xml:"scenarios"`
- AutoFilter *xlsxAutoFilter `xml:"autoFilter"`
- SortState *xlsxSortState `xml:"sortState"`
- DataConsolidate *xlsxInnerXML `xml:"dataConsolidate"`
- CustomSheetViews *xlsxCustomSheetViews `xml:"customSheetViews"`
- MergeCells *xlsxMergeCells `xml:"mergeCells"`
- PhoneticPr *xlsxPhoneticPr `xml:"phoneticPr"`
- ConditionalFormatting []*xlsxConditionalFormatting `xml:"conditionalFormatting"`
- DataValidations *xlsxDataValidations `xml:"dataValidations"`
- Hyperlinks *xlsxHyperlinks `xml:"hyperlinks"`
- PrintOptions *xlsxPrintOptions `xml:"printOptions"`
- PageMargins *xlsxPageMargins `xml:"pageMargins"`
- PageSetUp *xlsxPageSetUp `xml:"pageSetup"`
- HeaderFooter *xlsxHeaderFooter `xml:"headerFooter"`
- RowBreaks *xlsxRowBreaks `xml:"rowBreaks"`
- ColBreaks *xlsxColBreaks `xml:"colBreaks"`
- CustomProperties *xlsxInnerXML `xml:"customProperties"`
- CellWatches *xlsxInnerXML `xml:"cellWatches"`
- IgnoredErrors *xlsxInnerXML `xml:"ignoredErrors"`
- SmartTags *xlsxInnerXML `xml:"smartTags"`
- Drawing *xlsxDrawing `xml:"drawing"`
- LegacyDrawing *xlsxLegacyDrawing `xml:"legacyDrawing"`
- LegacyDrawingHF *xlsxLegacyDrawingHF `xml:"legacyDrawingHF"`
- DrawingHF *xlsxDrawingHF `xml:"drawingHF"`
- Picture *xlsxPicture `xml:"picture"`
- OleObjects *xlsxInnerXML `xml:"oleObjects"`
- Controls *xlsxInnerXML `xml:"controls"`
- WebPublishItems *xlsxInnerXML `xml:"webPublishItems"`
- AlternateContent *xlsxAlternateContent `xml:"mc:AlternateContent"`
- TableParts *xlsxTableParts `xml:"tableParts"`
- ExtLst *xlsxExtLst `xml:"extLst"`
- DecodeAlternateContent *xlsxInnerXML `xml:"http://schemas.openxmlformats.org/markup-compatibility/2006 AlternateContent"`
- }
- // xlsxDrawing change r:id to rid in the namespace.
- type xlsxDrawing struct {
- XMLName xml.Name `xml:"drawing"`
- RID string `xml:"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty"`
- }
- // xlsxHeaderFooter directly maps the headerFooter element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main - When printed or
- // viewed in page layout view (§18.18.69), each page of a worksheet can have a
- // page header, a page footer, or both. The headers and footers on odd-numbered
- // pages can differ from those on even-numbered pages, and the headers and
- // footers on the first page can differ from those on odd- and even-numbered
- // pages. In the latter case, the first page is not considered an odd page.
- type xlsxHeaderFooter struct {
- XMLName xml.Name `xml:"headerFooter"`
- DifferentOddEven bool `xml:"differentOddEven,attr,omitempty"`
- DifferentFirst bool `xml:"differentFirst,attr,omitempty"`
- ScaleWithDoc bool `xml:"scaleWithDoc,attr,omitempty"`
- AlignWithMargins bool `xml:"alignWithMargins,attr,omitempty"`
- OddHeader string `xml:"oddHeader,omitempty"`
- OddFooter string `xml:"oddFooter,omitempty"`
- EvenHeader string `xml:"evenHeader,omitempty"`
- EvenFooter string `xml:"evenFooter,omitempty"`
- FirstHeader string `xml:"firstHeader,omitempty"`
- FirstFooter string `xml:"firstFooter,omitempty"`
- }
- // xlsxDrawingHF (Drawing Reference in Header Footer) specifies the usage of
- // drawing objects to be rendered in the headers and footers of the sheet. It
- // specifies an explicit relationship to the part containing the DrawingML
- // shapes used in the headers and footers. It also indicates where in the
- // headers and footers each shape belongs. One drawing object can appear in
- // each of the left section, center section and right section of a header and
- // a footer.
- type xlsxDrawingHF struct {
- Content string `xml:",innerxml"`
- }
- // xlsxPageSetUp directly maps the pageSetup element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main - Page setup
- // settings for the worksheet.
- type xlsxPageSetUp struct {
- XMLName xml.Name `xml:"pageSetup"`
- BlackAndWhite bool `xml:"blackAndWhite,attr,omitempty"`
- CellComments string `xml:"cellComments,attr,omitempty"`
- Copies int `xml:"copies,attr,omitempty"`
- Draft bool `xml:"draft,attr,omitempty"`
- Errors string `xml:"errors,attr,omitempty"`
- FirstPageNumber string `xml:"firstPageNumber,attr,omitempty"`
- FitToHeight *int `xml:"fitToHeight,attr"`
- FitToWidth *int `xml:"fitToWidth,attr"`
- HorizontalDPI string `xml:"horizontalDpi,attr,omitempty"`
- RID string `xml:"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty"`
- Orientation string `xml:"orientation,attr,omitempty"`
- PageOrder string `xml:"pageOrder,attr,omitempty"`
- PaperHeight string `xml:"paperHeight,attr,omitempty"`
- PaperSize *int `xml:"paperSize,attr"`
- PaperWidth string `xml:"paperWidth,attr,omitempty"`
- Scale int `xml:"scale,attr,omitempty"`
- UseFirstPageNumber bool `xml:"useFirstPageNumber,attr,omitempty"`
- UsePrinterDefaults bool `xml:"usePrinterDefaults,attr,omitempty"`
- VerticalDPI string `xml:"verticalDpi,attr,omitempty"`
- }
- // xlsxPrintOptions directly maps the printOptions element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main - Print options for
- // the sheet. Printer-specific settings are stored separately in the Printer
- // Settings part.
- type xlsxPrintOptions struct {
- XMLName xml.Name `xml:"printOptions"`
- GridLines bool `xml:"gridLines,attr,omitempty"`
- GridLinesSet bool `xml:"gridLinesSet,attr,omitempty"`
- Headings bool `xml:"headings,attr,omitempty"`
- HorizontalCentered bool `xml:"horizontalCentered,attr,omitempty"`
- VerticalCentered bool `xml:"verticalCentered,attr,omitempty"`
- }
- // xlsxPageMargins directly maps the pageMargins element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main - Page margins for
- // a sheet or a custom sheet view.
- type xlsxPageMargins struct {
- XMLName xml.Name `xml:"pageMargins"`
- Left float64 `xml:"left,attr"`
- Right float64 `xml:"right,attr"`
- Top float64 `xml:"top,attr"`
- Bottom float64 `xml:"bottom,attr"`
- Header float64 `xml:"header,attr"`
- Footer float64 `xml:"footer,attr"`
- }
- // xlsxSheetFormatPr directly maps the sheetFormatPr element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main. This element
- // specifies the sheet formatting properties.
- type xlsxSheetFormatPr struct {
- XMLName xml.Name `xml:"sheetFormatPr"`
- BaseColWidth uint8 `xml:"baseColWidth,attr,omitempty"`
- DefaultColWidth float64 `xml:"defaultColWidth,attr,omitempty"`
- DefaultRowHeight float64 `xml:"defaultRowHeight,attr"`
- CustomHeight bool `xml:"customHeight,attr,omitempty"`
- ZeroHeight bool `xml:"zeroHeight,attr,omitempty"`
- ThickTop bool `xml:"thickTop,attr,omitempty"`
- ThickBottom bool `xml:"thickBottom,attr,omitempty"`
- OutlineLevelRow uint8 `xml:"outlineLevelRow,attr,omitempty"`
- OutlineLevelCol uint8 `xml:"outlineLevelCol,attr,omitempty"`
- }
- // xlsxSheetViews represents worksheet views collection.
- type xlsxSheetViews struct {
- XMLName xml.Name `xml:"sheetViews"`
- SheetView []xlsxSheetView `xml:"sheetView"`
- }
- // xlsxSheetView represents a single sheet view definition. When more than one
- // sheet view is defined in the file, it means that when opening the workbook,
- // each sheet view corresponds to a separate window within the spreadsheet
- // application, where each window is showing the particular sheet containing
- // the same workbookViewId value, the last sheetView definition is loaded, and
- // the others are discarded. When multiple windows are viewing the same sheet,
- // multiple sheetView elements (with corresponding workbookView entries) are
- // saved.
- type xlsxSheetView struct {
- WindowProtection bool `xml:"windowProtection,attr,omitempty"`
- ShowFormulas bool `xml:"showFormulas,attr,omitempty"`
- ShowGridLines *bool `xml:"showGridLines,attr"`
- ShowRowColHeaders *bool `xml:"showRowColHeaders,attr"`
- ShowZeros *bool `xml:"showZeros,attr,omitempty"`
- RightToLeft bool `xml:"rightToLeft,attr,omitempty"`
- TabSelected bool `xml:"tabSelected,attr,omitempty"`
- ShowRuler *bool `xml:"showRuler,attr,omitempty"`
- ShowWhiteSpace *bool `xml:"showWhiteSpace,attr"`
- ShowOutlineSymbols bool `xml:"showOutlineSymbols,attr,omitempty"`
- DefaultGridColor *bool `xml:"defaultGridColor,attr"`
- View string `xml:"view,attr,omitempty"`
- TopLeftCell string `xml:"topLeftCell,attr,omitempty"`
- ColorID int `xml:"colorId,attr,omitempty"`
- ZoomScale float64 `xml:"zoomScale,attr,omitempty"`
- ZoomScaleNormal float64 `xml:"zoomScaleNormal,attr,omitempty"`
- ZoomScalePageLayoutView float64 `xml:"zoomScalePageLayoutView,attr,omitempty"`
- ZoomScaleSheetLayoutView float64 `xml:"zoomScaleSheetLayoutView,attr,omitempty"`
- WorkbookViewID int `xml:"workbookViewId,attr"`
- Pane *xlsxPane `xml:"pane,omitempty"`
- Selection []*xlsxSelection `xml:"selection"`
- }
- // xlsxSelection directly maps the selection element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main - Worksheet view
- // selection.
- type xlsxSelection struct {
- ActiveCell string `xml:"activeCell,attr,omitempty"`
- ActiveCellID *int `xml:"activeCellId,attr"`
- Pane string `xml:"pane,attr,omitempty"`
- SQRef string `xml:"sqref,attr,omitempty"`
- }
- // xlsxSelection directly maps the selection element. Worksheet view pane.
- type xlsxPane struct {
- ActivePane string `xml:"activePane,attr,omitempty"`
- State string `xml:"state,attr,omitempty"` // Either "split" or "frozen"
- TopLeftCell string `xml:"topLeftCell,attr,omitempty"`
- XSplit float64 `xml:"xSplit,attr,omitempty"`
- YSplit float64 `xml:"ySplit,attr,omitempty"`
- }
- // xlsxSheetPr directly maps the sheetPr element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main - Sheet-level
- // properties.
- type xlsxSheetPr struct {
- XMLName xml.Name `xml:"sheetPr"`
- SyncHorizontal bool `xml:"syncHorizontal,attr,omitempty"`
- SyncVertical bool `xml:"syncVertical,attr,omitempty"`
- SyncRef string `xml:"syncRef,attr,omitempty"`
- TransitionEvaluation bool `xml:"transitionEvaluation,attr,omitempty"`
- TransitionEntry bool `xml:"transitionEntry,attr,omitempty"`
- Published *bool `xml:"published,attr"`
- CodeName string `xml:"codeName,attr,omitempty"`
- FilterMode bool `xml:"filterMode,attr,omitempty"`
- EnableFormatConditionsCalculation *bool `xml:"enableFormatConditionsCalculation,attr"`
- TabColor *xlsxTabColor `xml:"tabColor"`
- OutlinePr *xlsxOutlinePr `xml:"outlinePr"`
- PageSetUpPr *xlsxPageSetUpPr `xml:"pageSetUpPr"`
- }
- // xlsxOutlinePr maps to the outlinePr element. SummaryBelow allows you to
- // adjust the direction of grouper controls.
- type xlsxOutlinePr struct {
- ApplyStyles *bool `xml:"applyStyles,attr"`
- SummaryBelow *bool `xml:"summaryBelow,attr"`
- SummaryRight *bool `xml:"summaryRight,attr"`
- ShowOutlineSymbols *bool `xml:"showOutlineSymbols,attr"`
- }
- // xlsxPageSetUpPr expresses page setup properties of the worksheet.
- type xlsxPageSetUpPr struct {
- AutoPageBreaks bool `xml:"autoPageBreaks,attr,omitempty"`
- FitToPage bool `xml:"fitToPage,attr,omitempty"`
- }
- // xlsxTabColor represents background color of the sheet tab.
- type xlsxTabColor struct {
- Auto bool `xml:"auto,attr,omitempty"`
- Indexed int `xml:"indexed,attr,omitempty"`
- RGB string `xml:"rgb,attr,omitempty"`
- Theme int `xml:"theme,attr,omitempty"`
- Tint float64 `xml:"tint,attr,omitempty"`
- }
- // xlsxCols defines column width and column formatting for one or more columns
- // of the worksheet.
- type xlsxCols struct {
- XMLName xml.Name `xml:"cols"`
- Col []xlsxCol `xml:"col"`
- }
- // xlsxCol directly maps the col (Column Width & Formatting). Defines column
- // width and column formatting for one or more columns of the worksheet.
- type xlsxCol struct {
- BestFit bool `xml:"bestFit,attr,omitempty"`
- Collapsed bool `xml:"collapsed,attr,omitempty"`
- CustomWidth bool `xml:"customWidth,attr,omitempty"`
- Hidden bool `xml:"hidden,attr,omitempty"`
- Max int `xml:"max,attr"`
- Min int `xml:"min,attr"`
- OutlineLevel uint8 `xml:"outlineLevel,attr,omitempty"`
- Phonetic bool `xml:"phonetic,attr,omitempty"`
- Style int `xml:"style,attr,omitempty"`
- Width *float64 `xml:"width,attr"`
- }
- // xlsxDimension directly maps the dimension element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main - This element
- // specifies the used range of the worksheet. It specifies the row and column
- // bounds of used cells in the worksheet. This is optional and is not
- // required. Used cells include cells with formulas, text content, and cell
- // formatting. When an entire column is formatted, only the first cell in that
- // column is considered used.
- type xlsxDimension struct {
- XMLName xml.Name `xml:"dimension"`
- Ref string `xml:"ref,attr"`
- }
- // xlsxSheetData collection represents the cell table itself. This collection
- // expresses information about each cell, grouped together by rows in the
- // worksheet.
- type xlsxSheetData struct {
- XMLName xml.Name `xml:"sheetData"`
- Row []xlsxRow `xml:"row"`
- }
- // xlsxRow directly maps the row element. The element expresses information
- // about an entire row of a worksheet, and contains all cell definitions for a
- // particular row in the worksheet.
- type xlsxRow struct {
- C []xlsxC `xml:"c"`
- R int `xml:"r,attr,omitempty"`
- Spans string `xml:"spans,attr,omitempty"`
- S int `xml:"s,attr,omitempty"`
- CustomFormat bool `xml:"customFormat,attr,omitempty"`
- Ht *float64 `xml:"ht,attr"`
- Hidden bool `xml:"hidden,attr,omitempty"`
- CustomHeight bool `xml:"customHeight,attr,omitempty"`
- OutlineLevel uint8 `xml:"outlineLevel,attr,omitempty"`
- Collapsed bool `xml:"collapsed,attr,omitempty"`
- ThickTop bool `xml:"thickTop,attr,omitempty"`
- ThickBot bool `xml:"thickBot,attr,omitempty"`
- Ph bool `xml:"ph,attr,omitempty"`
- }
- // xlsxSortState directly maps the sortState element. This collection
- // preserves the AutoFilter sort state.
- type xlsxSortState struct {
- ColumnSort bool `xml:"columnSort,attr,omitempty"`
- CaseSensitive bool `xml:"caseSensitive,attr,omitempty"`
- SortMethod string `xml:"sortMethod,attr,omitempty"`
- Ref string `xml:"ref,attr"`
- Content string `xml:",innerxml"`
- }
- // xlsxCustomSheetViews directly maps the customSheetViews element. This is a
- // collection of custom sheet views.
- type xlsxCustomSheetViews struct {
- XMLName xml.Name `xml:"customSheetViews"`
- CustomSheetView []*xlsxCustomSheetView `xml:"customSheetView"`
- }
- // xlsxBrk directly maps the row or column break to use when paginating a
- // worksheet.
- type xlsxBrk struct {
- ID int `xml:"id,attr,omitempty"`
- Min int `xml:"min,attr,omitempty"`
- Max int `xml:"max,attr,omitempty"`
- Man bool `xml:"man,attr,omitempty"`
- Pt bool `xml:"pt,attr,omitempty"`
- }
- // xlsxRowBreaks directly maps a collection of the row breaks.
- type xlsxRowBreaks struct {
- XMLName xml.Name `xml:"rowBreaks"`
- xlsxBreaks
- }
- // xlsxRowBreaks directly maps a collection of the column breaks.
- type xlsxColBreaks struct {
- XMLName xml.Name `xml:"colBreaks"`
- xlsxBreaks
- }
- // xlsxBreaks directly maps a collection of the row or column breaks.
- type xlsxBreaks struct {
- Brk []*xlsxBrk `xml:"brk"`
- Count int `xml:"count,attr,omitempty"`
- ManualBreakCount int `xml:"manualBreakCount,attr,omitempty"`
- }
- // xlsxCustomSheetView directly maps the customSheetView element.
- type xlsxCustomSheetView struct {
- Pane *xlsxPane `xml:"pane"`
- Selection *xlsxSelection `xml:"selection"`
- RowBreaks *xlsxBreaks `xml:"rowBreaks"`
- ColBreaks *xlsxBreaks `xml:"colBreaks"`
- PageMargins *xlsxPageMargins `xml:"pageMargins"`
- PrintOptions *xlsxPrintOptions `xml:"printOptions"`
- PageSetup *xlsxPageSetUp `xml:"pageSetup"`
- HeaderFooter *xlsxHeaderFooter `xml:"headerFooter"`
- AutoFilter *xlsxAutoFilter `xml:"autoFilter"`
- ExtLst *xlsxExtLst `xml:"extLst"`
- GUID string `xml:"guid,attr"`
- Scale int `xml:"scale,attr,omitempty"`
- ColorID int `xml:"colorId,attr,omitempty"`
- ShowPageBreaks bool `xml:"showPageBreaks,attr,omitempty"`
- ShowFormulas bool `xml:"showFormulas,attr,omitempty"`
- ShowGridLines bool `xml:"showGridLines,attr,omitempty"`
- ShowRowCol bool `xml:"showRowCol,attr,omitempty"`
- OutlineSymbols bool `xml:"outlineSymbols,attr,omitempty"`
- ZeroValues bool `xml:"zeroValues,attr,omitempty"`
- FitToPage bool `xml:"fitToPage,attr,omitempty"`
- PrintArea bool `xml:"printArea,attr,omitempty"`
- Filter bool `xml:"filter,attr,omitempty"`
- ShowAutoFilter bool `xml:"showAutoFilter,attr,omitempty"`
- HiddenRows bool `xml:"hiddenRows,attr,omitempty"`
- HiddenColumns bool `xml:"hiddenColumns,attr,omitempty"`
- State string `xml:"state,attr,omitempty"`
- FilterUnique bool `xml:"filterUnique,attr,omitempty"`
- View string `xml:"view,attr,omitempty"`
- ShowRuler bool `xml:"showRuler,attr,omitempty"`
- TopLeftCell string `xml:"topLeftCell,attr,omitempty"`
- }
- // xlsxMergeCell directly maps the mergeCell element. A single merged cell.
- type xlsxMergeCell struct {
- Ref string `xml:"ref,attr,omitempty"`
- rect []int
- }
- // xlsxMergeCells directly maps the mergeCells element. This collection
- // expresses all the merged cells in the sheet.
- type xlsxMergeCells struct {
- XMLName xml.Name `xml:"mergeCells"`
- Count int `xml:"count,attr,omitempty"`
- Cells []*xlsxMergeCell `xml:"mergeCell,omitempty"`
- }
- // xlsxDataValidations expresses all data validation information for cells in a
- // sheet which have data validation features applied.
- type xlsxDataValidations struct {
- XMLName xml.Name `xml:"dataValidations"`
- Count int `xml:"count,attr,omitempty"`
- DisablePrompts bool `xml:"disablePrompts,attr,omitempty"`
- XWindow int `xml:"xWindow,attr,omitempty"`
- YWindow int `xml:"yWindow,attr,omitempty"`
- DataValidation []*DataValidation `xml:"dataValidation"`
- }
- // DataValidation directly maps the a single item of data validation defined
- // on a range of the worksheet.
- type DataValidation struct {
- AllowBlank bool `xml:"allowBlank,attr"`
- Error *string `xml:"error,attr"`
- ErrorStyle *string `xml:"errorStyle,attr"`
- ErrorTitle *string `xml:"errorTitle,attr"`
- Operator string `xml:"operator,attr,omitempty"`
- Prompt *string `xml:"prompt,attr"`
- PromptTitle *string `xml:"promptTitle,attr"`
- ShowDropDown bool `xml:"showDropDown,attr,omitempty"`
- ShowErrorMessage bool `xml:"showErrorMessage,attr,omitempty"`
- ShowInputMessage bool `xml:"showInputMessage,attr,omitempty"`
- Sqref string `xml:"sqref,attr"`
- Type string `xml:"type,attr,omitempty"`
- Formula1 string `xml:",innerxml"`
- Formula2 string `xml:",innerxml"`
- }
- // xlsxC collection represents a cell in the worksheet. Information about the
- // cell's location (reference), value, data type, formatting, and formula is
- // expressed here.
- //
- // This simple type is restricted to the values listed in the following table:
- //
- // Enumeration Value | Description
- // ---------------------------+---------------------------------
- // b (Boolean) | Cell containing a boolean.
- // d (Date) | Cell contains a date in the ISO 8601 format.
- // e (Error) | Cell containing an error.
- // inlineStr (Inline String) | Cell containing an (inline) rich string, i.e.,
- // | one not in the shared string table. If this
- // | cell type is used, then the cell value is in
- // | the is element rather than the v element in
- // | the cell (c element).
- // n (Number) | Cell containing a number.
- // s (Shared String) | Cell containing a shared string.
- // str (String) | Cell containing a formula string.
- type xlsxC struct {
- XMLName xml.Name `xml:"c"`
- XMLSpace xml.Attr `xml:"space,attr,omitempty"`
- R string `xml:"r,attr,omitempty"` // Cell ID, e.g. A1
- S int `xml:"s,attr,omitempty"` // Style reference
- T string `xml:"t,attr,omitempty"` // Type
- Cm *uint `xml:"cm,attr"`
- Vm *uint `xml:"vm,attr"`
- Ph *bool `xml:"ph,attr"`
- F *xlsxF `xml:"f"` // Formula
- V string `xml:"v,omitempty"` // Value
- IS *xlsxSI `xml:"is"`
- }
- // xlsxF represents a formula for the cell. The formula expression is
- // contained in the character node of this element.
- type xlsxF struct {
- Content string `xml:",chardata"`
- T string `xml:"t,attr,omitempty"` // Formula type
- Aca bool `xml:"aca,attr,omitempty"`
- Ref string `xml:"ref,attr,omitempty"` // Shared formula ref
- Dt2D bool `xml:"dt2D,attr,omitempty"`
- Dtr bool `xml:"dtr,attr,omitempty"`
- Del1 bool `xml:"del1,attr,omitempty"`
- Del2 bool `xml:"del2,attr,omitempty"`
- R1 string `xml:"r1,attr,omitempty"`
- R2 string `xml:"r2,attr,omitempty"`
- Ca bool `xml:"ca,attr,omitempty"`
- Si *int `xml:"si,attr"` // Shared formula index
- Bx bool `xml:"bx,attr,omitempty"`
- }
- // xlsxSheetProtection collection expresses the sheet protection options to
- // enforce when the sheet is protected.
- type xlsxSheetProtection struct {
- XMLName xml.Name `xml:"sheetProtection"`
- AlgorithmName string `xml:"algorithmName,attr,omitempty"`
- Password string `xml:"password,attr,omitempty"`
- HashValue string `xml:"hashValue,attr,omitempty"`
- SaltValue string `xml:"saltValue,attr,omitempty"`
- SpinCount int `xml:"spinCount,attr,omitempty"`
- Sheet bool `xml:"sheet,attr"`
- Objects bool `xml:"objects,attr"`
- Scenarios bool `xml:"scenarios,attr"`
- FormatCells bool `xml:"formatCells,attr"`
- FormatColumns bool `xml:"formatColumns,attr"`
- FormatRows bool `xml:"formatRows,attr"`
- InsertColumns bool `xml:"insertColumns,attr"`
- InsertRows bool `xml:"insertRows,attr"`
- InsertHyperlinks bool `xml:"insertHyperlinks,attr"`
- DeleteColumns bool `xml:"deleteColumns,attr"`
- DeleteRows bool `xml:"deleteRows,attr"`
- SelectLockedCells bool `xml:"selectLockedCells,attr"`
- Sort bool `xml:"sort,attr"`
- AutoFilter bool `xml:"autoFilter,attr"`
- PivotTables bool `xml:"pivotTables,attr"`
- SelectUnlockedCells bool `xml:"selectUnlockedCells,attr"`
- }
- // xlsxPhoneticPr (Phonetic Properties) represents a collection of phonetic
- // properties that affect the display of phonetic text for this String Item
- // (si). Phonetic text is used to give hints as to the pronunciation of an East
- // Asian language, and the hints are displayed as text within the spreadsheet
- // cells across the top portion of the cell. Since the phonetic hints are text,
- // every phonetic hint is expressed as a phonetic run (rPh), and these
- // properties specify how to display that phonetic run.
- type xlsxPhoneticPr struct {
- XMLName xml.Name `xml:"phoneticPr"`
- Alignment string `xml:"alignment,attr,omitempty"`
- FontID *int `xml:"fontId,attr"`
- Type string `xml:"type,attr,omitempty"`
- }
- // A Conditional Format is a format, such as cell shading or font color, that a
- // spreadsheet application can automatically apply to cells if a specified
- // condition is true. This collection expresses conditional formatting rules
- // applied to a particular cell or range.
- type xlsxConditionalFormatting struct {
- XMLName xml.Name `xml:"conditionalFormatting"`
- Pivot bool `xml:"pivot,attr,omitempty"`
- SQRef string `xml:"sqref,attr,omitempty"`
- CfRule []*xlsxCfRule `xml:"cfRule"`
- }
- // xlsxCfRule (Conditional Formatting Rule) represents a description of a
- // conditional formatting rule.
- type xlsxCfRule struct {
- Type string `xml:"type,attr,omitempty"`
- DxfID *int `xml:"dxfId,attr"`
- Priority int `xml:"priority,attr,omitempty"`
- StopIfTrue bool `xml:"stopIfTrue,attr,omitempty"`
- AboveAverage *bool `xml:"aboveAverage,attr"`
- Percent bool `xml:"percent,attr,omitempty"`
- Bottom bool `xml:"bottom,attr,omitempty"`
- Operator string `xml:"operator,attr,omitempty"`
- Text string `xml:"text,attr,omitempty"`
- TimePeriod string `xml:"timePeriod,attr,omitempty"`
- Rank int `xml:"rank,attr,omitempty"`
- StdDev int `xml:"stdDev,attr,omitempty"`
- EqualAverage bool `xml:"equalAverage,attr,omitempty"`
- Formula []string `xml:"formula,omitempty"`
- ColorScale *xlsxColorScale `xml:"colorScale"`
- DataBar *xlsxDataBar `xml:"dataBar"`
- IconSet *xlsxIconSet `xml:"iconSet"`
- ExtLst *xlsxExtLst `xml:"extLst"`
- }
- // xlsxColorScale (Color Scale) describes a gradated color scale in this
- // conditional formatting rule.
- type xlsxColorScale struct {
- Cfvo []*xlsxCfvo `xml:"cfvo"`
- Color []*xlsxColor `xml:"color"`
- }
- // dataBar (Data Bar) describes a data bar conditional formatting rule.
- type xlsxDataBar struct {
- MaxLength int `xml:"maxLength,attr,omitempty"`
- MinLength int `xml:"minLength,attr,omitempty"`
- ShowValue *bool `xml:"showValue,attr"`
- Cfvo []*xlsxCfvo `xml:"cfvo"`
- Color []*xlsxColor `xml:"color"`
- }
- // xlsxIconSet (Icon Set) describes an icon set conditional formatting rule.
- type xlsxIconSet struct {
- Cfvo []*xlsxCfvo `xml:"cfvo"`
- IconSet string `xml:"iconSet,attr,omitempty"`
- ShowValue *bool `xml:"showValue,attr"`
- Percent bool `xml:"percent,attr,omitempty"`
- Reverse bool `xml:"reverse,attr,omitempty"`
- }
- // cfvo (Conditional Format Value Object) describes the values of the
- // interpolation points in a gradient scale.
- type xlsxCfvo struct {
- Gte bool `xml:"gte,attr,omitempty"`
- Type string `xml:"type,attr,omitempty"`
- Val string `xml:"val,attr,omitempty"`
- ExtLst *xlsxExtLst `xml:"extLst"`
- }
- // xlsxHyperlinks directly maps the hyperlinks element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main - A hyperlink can
- // be stored in a package as a relationship. Hyperlinks shall be identified by
- // containing a target which specifies the destination of the given hyperlink.
- type xlsxHyperlinks struct {
- XMLName xml.Name `xml:"hyperlinks"`
- Hyperlink []xlsxHyperlink `xml:"hyperlink"`
- }
- // xlsxHyperlink directly maps the hyperlink element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main
- type xlsxHyperlink struct {
- Ref string `xml:"ref,attr"`
- Location string `xml:"location,attr,omitempty"`
- Display string `xml:"display,attr,omitempty"`
- Tooltip string `xml:"tooltip,attr,omitempty"`
- RID string `xml:"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty"`
- }
- // xlsxTableParts directly maps the tableParts element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main - The table element
- // has several attributes applied to identify the table and the data range it
- // covers. The table id attribute needs to be unique across all table parts, the
- // same goes for the name and displayName. The displayName has the further
- // restriction that it must be unique across all defined names in the workbook.
- // Later on we will see that you can define names for many elements, such as
- // cells or formulas. The name value is used for the object model in Microsoft
- // Office Excel. The displayName is used for references in formulas. The ref
- // attribute is used to identify the cell range that the table covers. This
- // includes not only the table data, but also the table header containing column
- // names.
- // To add columns to your table you add new tableColumn elements to the
- // tableColumns container. Similar to the shared string table the collection
- // keeps a count attribute identifying the number of columns. Besides the table
- // definition in the table part there is also the need to identify which tables
- // are displayed in the worksheet. The worksheet part has a separate element
- // tableParts to store this information. Each table part is referenced through
- // the relationship ID and again a count of the number of table parts is
- // maintained. The following markup sample is taken from the documents
- // accompanying this book. The sheet data element has been removed to reduce the
- // size of the sample. To reference the table, just add the tableParts element,
- // of course after having created and stored the table part. For example:
- //
- // <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
- // ...
- // <tableParts count="1">
- // <tablePart r:id="rId1" />
- // </tableParts>
- // </worksheet>
- type xlsxTableParts struct {
- XMLName xml.Name `xml:"tableParts"`
- Count int `xml:"count,attr,omitempty"`
- TableParts []*xlsxTablePart `xml:"tablePart"`
- }
- // xlsxTablePart directly maps the tablePart element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main
- type xlsxTablePart struct {
- RID string `xml:"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty"`
- }
- // xlsxPicture directly maps the picture element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main - Background sheet
- // image. For example:
- //
- // <picture r:id="rId1"/>
- type xlsxPicture struct {
- XMLName xml.Name `xml:"picture"`
- RID string `xml:"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty"`
- }
- // xlsxLegacyDrawing directly maps the legacyDrawing element in the namespace
- // http://schemas.openxmlformats.org/spreadsheetml/2006/main - A comment is a
- // rich text note that is attached to, and associated with, a cell, separate
- // from other cell content. Comment content is stored separate from the cell,
- // and is displayed in a drawing object (like a text box) that is separate from,
- // but associated with, a cell. Comments are used as reminders, such as noting
- // how a complex formula works, or to provide feedback to other users. Comments
- // can also be used to explain assumptions made in a formula or to call out
- // something special about the cell.
- type xlsxLegacyDrawing struct {
- XMLName xml.Name `xml:"legacyDrawing"`
- RID string `xml:"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty"`
- }
- // xlsxLegacyDrawingHF specifies the explicit relationship to the part
- // containing the VML defining pictures rendered in the header / footer of the
- // sheet.
- type xlsxLegacyDrawingHF struct {
- XMLName xml.Name `xml:"legacyDrawingHF"`
- RID string `xml:"http://schemas.openxmlformats.org/officeDocument/2006/relationships id,attr,omitempty"`
- }
- // xlsxAlternateContent is a container for a sequence of multiple
- // representations of a given piece of content. The program reading the file
- // should only process one of these, and the one chosen should be based on
- // which conditions match.
- type xlsxAlternateContent struct {
- XMLNSMC string `xml:"xmlns:mc,attr,omitempty"`
- Content string `xml:",innerxml"`
- }
- // xlsxInnerXML holds parts of XML content currently not unmarshal.
- type xlsxInnerXML struct {
- Content string `xml:",innerxml"`
- }
- // xlsxWorksheetExt directly maps the ext element in the worksheet.
- type xlsxWorksheetExt struct {
- XMLName xml.Name `xml:"ext"`
- URI string `xml:"uri,attr"`
- Content string `xml:",innerxml"`
- }
- // decodeWorksheetExt directly maps the ext element.
- type decodeWorksheetExt struct {
- XMLName xml.Name `xml:"extLst"`
- Ext []*xlsxWorksheetExt `xml:"ext"`
- }
- // decodeX14SparklineGroups directly maps the sparklineGroups element.
- type decodeX14SparklineGroups struct {
- XMLName xml.Name `xml:"sparklineGroups"`
- XMLNSXM string `xml:"xmlns:xm,attr"`
- Content string `xml:",innerxml"`
- }
- // decodeX14ConditionalFormattingExt directly maps the ext
- // element.
- type decodeX14ConditionalFormattingExt struct {
- XMLName xml.Name `xml:"ext"`
- ID string `xml:"id"`
- }
- // decodeX14ConditionalFormattings directly maps the conditionalFormattings
- // element.
- type decodeX14ConditionalFormattings struct {
- XMLName xml.Name `xml:"conditionalFormattings"`
- XMLNSXM string `xml:"xmlns:xm,attr"`
- Content string `xml:",innerxml"`
- }
- // decodeX14ConditionalFormatting directly maps the conditionalFormatting
- // element.
- type decodeX14ConditionalFormatting struct {
- XMLName xml.Name `xml:"conditionalFormatting"`
- CfRule []*decodeX14CfRule `xml:"cfRule"`
- }
- // decodeX14CfRule directly maps the cfRule element.
- type decodeX14CfRule struct {
- XMLName xml.Name `xml:"cfRule"`
- Type string `xml:"type,attr,omitempty"`
- ID string `xml:"id,attr,omitempty"`
- DataBar *decodeX14DataBar `xml:"dataBar"`
- }
- // decodeX14DataBar directly maps the dataBar element.
- type decodeX14DataBar struct {
- XMLName xml.Name `xml:"dataBar"`
- MaxLength int `xml:"maxLength,attr"`
- MinLength int `xml:"minLength,attr"`
- Border bool `xml:"border,attr,omitempty"`
- Gradient bool `xml:"gradient,attr"`
- ShowValue bool `xml:"showValue,attr,omitempty"`
- Direction string `xml:"direction,attr,omitempty"`
- Cfvo []*xlsxCfvo `xml:"cfvo"`
- BorderColor *xlsxColor `xml:"borderColor"`
- NegativeFillColor *xlsxColor `xml:"negativeFillColor"`
- AxisColor *xlsxColor `xml:"axisColor"`
- }
- // xlsxX14ConditionalFormattings directly maps the conditionalFormattings
- // element.
- type xlsxX14ConditionalFormattings struct {
- XMLName xml.Name `xml:"x14:conditionalFormattings"`
- Content string `xml:",innerxml"`
- }
- // xlsxX14ConditionalFormatting directly maps the conditionalFormatting element.
- type xlsxX14ConditionalFormatting struct {
- XMLName xml.Name `xml:"x14:conditionalFormatting"`
- XMLNSXM string `xml:"xmlns:xm,attr"`
- CfRule []*xlsxX14CfRule `xml:"x14:cfRule"`
- }
- // xlsxX14CfRule directly maps the cfRule element.
- type xlsxX14CfRule struct {
- Type string `xml:"type,attr,omitempty"`
- ID string `xml:"id,attr,omitempty"`
- DataBar *xlsx14DataBar `xml:"x14:dataBar"`
- }
- // xlsx14DataBar directly maps the dataBar element.
- type xlsx14DataBar struct {
- MaxLength int `xml:"maxLength,attr"`
- MinLength int `xml:"minLength,attr"`
- Border bool `xml:"border,attr"`
- Gradient bool `xml:"gradient,attr"`
- ShowValue bool `xml:"showValue,attr,omitempty"`
- Direction string `xml:"direction,attr,omitempty"`
- Cfvo []*xlsxCfvo `xml:"x14:cfvo"`
- BorderColor *xlsxColor `xml:"x14:borderColor"`
- NegativeFillColor *xlsxColor `xml:"x14:negativeFillColor"`
- AxisColor *xlsxColor `xml:"x14:axisColor"`
- }
- // xlsxX14SparklineGroups directly maps the sparklineGroups element.
- type xlsxX14SparklineGroups struct {
- XMLName xml.Name `xml:"x14:sparklineGroups"`
- XMLNSXM string `xml:"xmlns:xm,attr"`
- SparklineGroups []*xlsxX14SparklineGroup `xml:"x14:sparklineGroup"`
- Content string `xml:",innerxml"`
- }
- // xlsxX14SparklineGroup directly maps the sparklineGroup element.
- type xlsxX14SparklineGroup struct {
- XMLName xml.Name `xml:"x14:sparklineGroup"`
- ManualMax int `xml:"manualMax,attr,omitempty"`
- ManualMin int `xml:"manualMin,attr,omitempty"`
- LineWeight float64 `xml:"lineWeight,attr,omitempty"`
- Type string `xml:"type,attr,omitempty"`
- DateAxis bool `xml:"dateAxis,attr,omitempty"`
- DisplayEmptyCellsAs string `xml:"displayEmptyCellsAs,attr,omitempty"`
- Markers bool `xml:"markers,attr,omitempty"`
- High bool `xml:"high,attr,omitempty"`
- Low bool `xml:"low,attr,omitempty"`
- First bool `xml:"first,attr,omitempty"`
- Last bool `xml:"last,attr,omitempty"`
- Negative bool `xml:"negative,attr,omitempty"`
- DisplayXAxis bool `xml:"displayXAxis,attr,omitempty"`
- DisplayHidden bool `xml:"displayHidden,attr,omitempty"`
- MinAxisType string `xml:"minAxisType,attr,omitempty"`
- MaxAxisType string `xml:"maxAxisType,attr,omitempty"`
- RightToLeft bool `xml:"rightToLeft,attr,omitempty"`
- ColorSeries *xlsxTabColor `xml:"x14:colorSeries"`
- ColorNegative *xlsxTabColor `xml:"x14:colorNegative"`
- ColorAxis *xlsxColor `xml:"x14:colorAxis"`
- ColorMarkers *xlsxTabColor `xml:"x14:colorMarkers"`
- ColorFirst *xlsxTabColor `xml:"x14:colorFirst"`
- ColorLast *xlsxTabColor `xml:"x14:colorLast"`
- ColorHigh *xlsxTabColor `xml:"x14:colorHigh"`
- ColorLow *xlsxTabColor `xml:"x14:colorLow"`
- Sparklines xlsxX14Sparklines `xml:"x14:sparklines"`
- }
- // xlsxX14Sparklines directly maps the sparklines element.
- type xlsxX14Sparklines struct {
- Sparkline []*xlsxX14Sparkline `xml:"x14:sparkline"`
- }
- // xlsxX14Sparkline directly maps the sparkline element.
- type xlsxX14Sparkline struct {
- F string `xml:"xm:f"`
- Sqref string `xml:"xm:sqref"`
- }
- // SparklineOptions directly maps the settings of the sparkline.
- type SparklineOptions struct {
- Location []string
- Range []string
- Max int
- CustMax int
- Min int
- CustMin int
- Type string
- Weight float64
- DateAxis bool
- Markers bool
- High bool
- Low bool
- First bool
- Last bool
- Negative bool
- Axis bool
- Hidden bool
- Reverse bool
- Style int
- SeriesColor string
- NegativeColor string
- MarkersColor string
- FirstColor string
- LastColor string
- HightColor string
- LowColor string
- EmptyCells string
- }
- // PaneOptions directly maps the settings of the pane.
- type PaneOptions struct {
- SQRef string
- ActiveCell string
- Pane string
- }
- // Panes directly maps the settings of the panes.
- type Panes struct {
- Freeze bool
- Split bool
- XSplit int
- YSplit int
- TopLeftCell string
- ActivePane string
- Panes []PaneOptions
- }
- // ConditionalFormatOptions directly maps the conditional format settings of the cells.
- type ConditionalFormatOptions struct {
- Type string
- AboveAverage bool
- Percent bool
- Format int
- Criteria string
- Value string
- MinType string
- MidType string
- MaxType string
- MinValue string
- MidValue string
- MaxValue string
- MinColor string
- MidColor string
- MaxColor string
- BarColor string
- BarBorderColor string
- BarDirection string
- BarOnly bool
- BarSolid bool
- IconStyle string
- ReverseIcons bool
- IconsOnly bool
- StopIfTrue bool
- }
- // SheetProtectionOptions directly maps the settings of worksheet protection.
- type SheetProtectionOptions struct {
- AlgorithmName string
- AutoFilter bool
- DeleteColumns bool
- DeleteRows bool
- EditObjects bool
- EditScenarios bool
- FormatCells bool
- FormatColumns bool
- FormatRows bool
- InsertColumns bool
- InsertHyperlinks bool
- InsertRows bool
- Password string
- PivotTables bool
- SelectLockedCells bool
- SelectUnlockedCells bool
- Sort bool
- }
- // HeaderFooterOptions directly maps the settings of header and footer.
- type HeaderFooterOptions struct {
- AlignWithMargins bool
- DifferentFirst bool
- DifferentOddEven bool
- ScaleWithDoc bool
- OddHeader string
- OddFooter string
- EvenHeader string
- EvenFooter string
- FirstHeader string
- FirstFooter string
- }
- // PageLayoutMarginsOptions directly maps the settings of page layout margins.
- type PageLayoutMarginsOptions struct {
- Bottom *float64
- Footer *float64
- Header *float64
- Left *float64
- Right *float64
- Top *float64
- Horizontally *bool
- Vertically *bool
- }
- // PageLayoutOptions directly maps the settings of page layout.
- type PageLayoutOptions struct {
- // Size defines the paper size of the worksheet.
- Size *int
- // Orientation defines the orientation of page layout for a worksheet.
- Orientation *string
- // FirstPageNumber specified the first printed page number. If no value is
- // specified, then 'automatic' is assumed.
- FirstPageNumber *uint
- // AdjustTo defines the print scaling. This attribute is restricted to
- // value ranging from 10 (10%) to 400 (400%). This setting is overridden
- // when fitToWidth and/or fitToHeight are in use.
- AdjustTo *uint
- // FitToHeight specified the number of vertical pages to fit on.
- FitToHeight *int
- // FitToWidth specified the number of horizontal pages to fit on.
- FitToWidth *int
- // BlackAndWhite specified print black and white.
- BlackAndWhite *bool
- }
- // ViewOptions directly maps the settings of sheet view.
- type ViewOptions struct {
- // DefaultGridColor indicating that the consuming application should use
- // the default grid lines color(system dependent). Overrides any color
- // specified in colorId.
- DefaultGridColor *bool
- // RightToLeft indicating whether the sheet is in 'right to left' display
- // mode. When in this mode, Column A is on the far right, Column B; is one
- // column left of Column A, and so on. Also, information in cells is
- // displayed in the Right to Left format.
- RightToLeft *bool
- // ShowFormulas indicating whether this sheet should display formulas.
- ShowFormulas *bool
- // ShowGridLines indicating whether this sheet should display grid lines.
- ShowGridLines *bool
- // ShowRowColHeaders indicating whether the sheet should display row and
- // column headings.
- ShowRowColHeaders *bool
- // ShowRuler indicating this sheet should display ruler.
- ShowRuler *bool
- // ShowZeros indicating whether to "show a zero in cells that have zero
- // value". When using a formula to reference another cell which is empty,
- // the referenced value becomes 0 when the flag is true. (Default setting
- // is true.)
- ShowZeros *bool
- // TopLeftCell specifies a location of the top left visible cell Location
- // of the top left visible cell in the bottom right pane (when in
- // Left-to-Right mode).
- TopLeftCell *string
- // View indicating how sheet is displayed, by default it uses empty string
- // available options: normal, pageLayout, pageBreakPreview
- View *string
- // ZoomScale specifies a window zoom magnification for current view
- // representing percent values. This attribute is restricted to values
- // ranging from 10 to 400. Horizontal & Vertical scale together.
- ZoomScale *float64
- }
- // SheetPropsOptions directly maps the settings of sheet view.
- type SheetPropsOptions struct {
- // Specifies a stable name of the sheet, which should not change over time,
- // and does not change from user input. This name should be used by code
- // to reference a particular sheet.
- CodeName *string
- // EnableFormatConditionsCalculation indicating whether the conditional
- // formatting calculations shall be evaluated. If set to false, then the
- // min/max values of color scales or data bars or threshold values in Top N
- // rules shall not be updated. Essentially the conditional
- // formatting "calc" is off.
- EnableFormatConditionsCalculation *bool
- // Published indicating whether the worksheet is published.
- Published *bool
- // AutoPageBreaks indicating whether the sheet displays Automatic Page
- // Breaks.
- AutoPageBreaks *bool
- // FitToPage indicating whether the Fit to Page print option is enabled.
- FitToPage *bool
- // TabColorIndexed represents the indexed color value.
- TabColorIndexed *int
- // TabColorRGB represents the standard Alpha Red Green Blue color value.
- TabColorRGB *string
- // TabColorTheme represents the zero-based index into the collection,
- // referencing a particular value expressed in the Theme part.
- TabColorTheme *int
- // TabColorTint specifies the tint value applied to the color.
- TabColorTint *float64
- // OutlineSummaryBelow indicating whether summary rows appear below detail
- // in an outline, when applying an outline.
- OutlineSummaryBelow *bool
- // OutlineSummaryRight indicating whether summary columns appear to the
- // right of detail in an outline, when applying an outline.
- OutlineSummaryRight *bool
- // BaseColWidth specifies the number of characters of the maximum digit
- // width of the normal style's font. This value does not include margin
- // padding or extra padding for grid lines. It is only the number of
- // characters.
- BaseColWidth *uint8
- // DefaultColWidth specifies the default column width measured as the
- // number of characters of the maximum digit width of the normal style's
- // font.
- DefaultColWidth *float64
- // DefaultRowHeight specifies the default row height measured in point
- // size. Optimization so we don't have to write the height on all rows.
- // This can be written out if most rows have custom height, to achieve the
- // optimization.
- DefaultRowHeight *float64
- // CustomHeight specifies the custom height.
- CustomHeight *bool
- // ZeroHeight specifies if rows are hidden.
- ZeroHeight *bool
- // ThickTop specifies if rows have a thick top border by default.
- ThickTop *bool
- // ThickBottom specifies if rows have a thick bottom border by default.
- ThickBottom *bool
- }
|