2024-03-26 23:19:23 +08:00
|
|
|
// Copyright 2016 - 2024 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.18 or later.
|
|
|
|
|
|
|
|
package excelize
|
|
|
|
|
|
|
|
import "encoding/xml"
|
|
|
|
|
|
|
|
// xlsxMetadata directly maps the metadata element. A cell in a spreadsheet
|
|
|
|
// application can have metadata associated with it. Metadata is just a set of
|
|
|
|
// additional properties about the particular cell, and this metadata is stored
|
|
|
|
// in the metadata xml part. There are two types of metadata: cell metadata and
|
|
|
|
// value metadata. Cell metadata contains information about the cell itself,
|
|
|
|
// and this metadata can be carried along with the cell as it moves
|
|
|
|
// (insert, shift, copy/paste, merge, unmerge, etc). Value metadata is
|
|
|
|
// information about the value of a particular cell. Value metadata properties
|
|
|
|
// can be propagated along with the value as it is referenced in formulas.
|
|
|
|
type xlsxMetadata struct {
|
|
|
|
XMLName xml.Name `xml:"metadata"`
|
|
|
|
MetadataTypes *xlsxInnerXML `xml:"metadataTypes"`
|
|
|
|
MetadataStrings *xlsxInnerXML `xml:"metadataStrings"`
|
|
|
|
MdxMetadata *xlsxInnerXML `xml:"mdxMetadata"`
|
|
|
|
FutureMetadata []xlsxFutureMetadata `xml:"futureMetadata"`
|
|
|
|
CellMetadata *xlsxMetadataBlocks `xml:"cellMetadata"`
|
|
|
|
ValueMetadata *xlsxMetadataBlocks `xml:"valueMetadata"`
|
|
|
|
ExtLst *xlsxInnerXML `xml:"extLst"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// xlsxFutureMetadata directly maps the futureMetadata element. This element
|
|
|
|
// represents future metadata information.
|
|
|
|
type xlsxFutureMetadata struct {
|
|
|
|
Bk []xlsxFutureMetadataBlock `xml:"bk"`
|
|
|
|
ExtLst *xlsxInnerXML `xml:"extLst"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// xlsxFutureMetadataBlock directly maps the kb element. This element represents
|
|
|
|
// a block of future metadata information. This is a location for storing
|
|
|
|
// feature extension information.
|
|
|
|
type xlsxFutureMetadataBlock struct {
|
|
|
|
ExtLst *xlsxInnerXML `xml:"extLst"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// xlsxMetadataBlocks directly maps the metadata element. This element
|
|
|
|
// represents cell metadata information. Cell metadata is information metadata
|
|
|
|
// about a specific cell, and it stays tied to that cell position.
|
|
|
|
type xlsxMetadataBlocks struct {
|
|
|
|
Count int `xml:"count,attr,omitempty"`
|
|
|
|
Bk []xlsxMetadataBlock `xml:"bk"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// xlsxMetadataBlock directly maps the bk element. This element represents a
|
|
|
|
// block of metadata records.
|
|
|
|
type xlsxMetadataBlock struct {
|
|
|
|
Rc []xlsxMetadataRecord `xml:"rc"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// xlsxMetadataRecord directly maps the rc element. This element represents a
|
|
|
|
// reference to a specific metadata record.
|
|
|
|
type xlsxMetadataRecord struct {
|
|
|
|
T int `xml:"t,attr"`
|
|
|
|
V int `xml:"v,attr"`
|
|
|
|
}
|
|
|
|
|
2024-03-28 16:37:35 +08:00
|
|
|
// xlsxRichValueData directly maps the rvData element that specifies rich value
|
|
|
|
// data.
|
|
|
|
type xlsxRichValueData struct {
|
|
|
|
XMLName xml.Name `xml:"rvData"`
|
|
|
|
Count int `xml:"count,attr,omitempty"`
|
|
|
|
Rv []xlsxRichValue `xml:"rv"`
|
|
|
|
ExtLst *xlsxInnerXML `xml:"extLst"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// xlsxRichValue directly maps the rv element that specifies rich value data
|
|
|
|
// information for a single rich value
|
|
|
|
type xlsxRichValue struct {
|
|
|
|
S int `xml:"s,attr"`
|
|
|
|
V []string `xml:"v"`
|
|
|
|
Fb *xlsxInnerXML `xml:"fb"`
|
|
|
|
}
|
|
|
|
|
2024-03-26 23:19:23 +08:00
|
|
|
// xlsxRichValueRels directly maps the richValueRels element. This element that
|
|
|
|
// specifies a list of rich value relationships.
|
|
|
|
type xlsxRichValueRels struct {
|
|
|
|
XMLName xml.Name `xml:"richValueRels"`
|
|
|
|
Rels []xlsxRichValueRelRelationship `xml:"rel"`
|
|
|
|
ExtLst *xlsxInnerXML `xml:"extLst"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// xlsxRichValueRelRelationship directly maps the rel element. This element
|
|
|
|
// specifies a relationship for a rich value property.
|
|
|
|
type xlsxRichValueRelRelationship struct {
|
|
|
|
ID string `xml:"id,attr"`
|
|
|
|
}
|
2024-04-02 08:47:57 +08:00
|
|
|
|
|
|
|
// xlsxWebImagesSupportingRichData directly maps the webImagesSrd element. This
|
|
|
|
// element specifies a list of sets of properties associated with web image rich
|
|
|
|
// values.
|
|
|
|
type xlsxWebImagesSupportingRichData struct {
|
|
|
|
XMLName xml.Name `xml:"webImagesSrd"`
|
|
|
|
WebImageSrd []xlsxWebImageSupportingRichData `xml:"webImageSrd"`
|
|
|
|
ExtLst *xlsxInnerXML `xml:"extLst"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// xlsxWebImageSupportingRichData directly maps the webImageSrd element. This
|
|
|
|
// element specifies a set of properties for a web image rich value.
|
|
|
|
type xlsxWebImageSupportingRichData struct {
|
|
|
|
Address xlsxExternalReference `xml:"address"`
|
|
|
|
MoreImagesAddress xlsxExternalReference `xml:"moreImagesAddress"`
|
|
|
|
Blip xlsxExternalReference `xml:"blip"`
|
|
|
|
}
|