summaryrefslogtreecommitdiff
path: root/xmlWorkbook.go
diff options
context:
space:
mode:
Diffstat (limited to 'xmlWorkbook.go')
-rw-r--r--xmlWorkbook.go210
1 files changed, 126 insertions, 84 deletions
diff --git a/xmlWorkbook.go b/xmlWorkbook.go
index c196900..6ba7b53 100644
--- a/xmlWorkbook.go
+++ b/xmlWorkbook.go
@@ -1,5 +1,3 @@
-// Some code of this file reference tealeg/xlsx.
-
package excelize
import "encoding/xml"
@@ -13,7 +11,7 @@ const (
)
// xmlxWorkbookRels contains xmlxWorkbookRelations
-// which maps sheet id and sheet XML
+// which maps sheet id and sheet XML.
type xlsxWorkbookRels struct {
XMLName xml.Name `xml:"http://schemas.openxmlformats.org/package/2006/relationships Relationships"`
Relationships []xlsxWorkbookRelation `xml:"Relationship"`
@@ -31,39 +29,61 @@ type xlsxWorkbookRelation struct {
// currently I have not checked it for completeness - it does as much
// as I need.
type xlsxWorkbook struct {
- XMLName xml.Name `xml:"http://schemas.openxmlformats.org/spreadsheetml/2006/main workbook"`
- FileVersion xlsxFileVersion `xml:"fileVersion"`
- WorkbookPr xlsxWorkbookPr `xml:"workbookPr"`
- WorkbookProtection xlsxWorkbookProtection `xml:"workbookProtection"`
- BookViews xlsxBookViews `xml:"bookViews"`
- Sheets xlsxSheets `xml:"sheets"`
- ExternalReferences xlsxExternalReferences `xml:"externalReferences"`
- DefinedNames xlsxDefinedNames `xml:"definedNames"`
- CalcPr xlsxCalcPr `xml:"calcPr"`
- PivotCaches xlsxPivotCaches `xml:"pivotCaches"`
- ExtLst xlsxExtLst `xml:"extLst"`
- FileRecoveryPr xlsxFileRecoveryPr `xml:"fileRecoveryPr"`
-}
-
-// xlsxFileRecoveryPr maps sheet recovery information.
+ XMLName xml.Name `xml:"http://schemas.openxmlformats.org/spreadsheetml/2006/main workbook"`
+ FileVersion *xlsxFileVersion `xml:"fileVersion"`
+ WorkbookPr *xlsxWorkbookPr `xml:"workbookPr"`
+ WorkbookProtection *xlsxWorkbookProtection `xml:"workbookProtection"`
+ BookViews xlsxBookViews `xml:"bookViews"`
+ Sheets xlsxSheets `xml:"sheets"`
+ ExternalReferences *xlsxExternalReferences `xml:"externalReferences"`
+ DefinedNames *xlsxDefinedNames `xml:"definedNames"`
+ CalcPr *xlsxCalcPr `xml:"calcPr"`
+ PivotCaches *xlsxPivotCaches `xml:"pivotCaches"`
+ ExtLst *xlsxExtLst `xml:"extLst"`
+ FileRecoveryPr *xlsxFileRecoveryPr `xml:"fileRecoveryPr"`
+}
+
+// xlsxFileRecoveryPr maps sheet recovery information. This element
+// defines properties that track the state of the workbook file, such
+// as whether the file was saved during a crash, or whether it should
+// be opened in auto-recover mode.
type xlsxFileRecoveryPr struct {
- RepairLoad int `xml:"repairLoad,attr,omitempty"`
-}
-
-// xlsxWorkbookProtection directly maps the workbookProtection element from the
-// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main
-// - currently I have not checked it for completeness - it does as
-// much as I need.
+ AutoRecover bool `xml:"autoRecover,attr,omitempty"`
+ CrashSave bool `xml:"crashSave,attr,omitempty"`
+ DataExtractLoad bool `xml:"dataExtractLoad,attr,omitempty"`
+ RepairLoad bool `xml:"repairLoad,attr,omitempty"`
+}
+
+// xlsxWorkbookProtection directly maps the workbookProtection element.
+// This element specifies options for protecting data in the workbook.
+// Applications might use workbook protection to prevent anyone from
+// accidentally changing, moving, or deleting important data. This
+// protection can be ignored by applications which choose not to support
+// this optional protection mechanism.
+// When a password is to be hashed and stored in this element, it shall
+// be hashed as defined below, starting from a UTF-16LE encoded string
+// value. If there is a leading BOM character (U+FEFF) in the encoded
+// password it is removed before hash calculation.
type xlsxWorkbookProtection struct {
- // We don't need this, yet.
-}
-
-// xlsxFileVersion directly maps the fileVersion element from the
-// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main
-// - currently I have not checked it for completeness - it does as
-// much as I need.
+ LockRevision bool `xml:"lockRevision,attr,omitempty"`
+ LockStructure bool `xml:"lockStructure,attr,omitempty"`
+ LockWindows bool `xml:"lockWindows,attr,omitempty"`
+ RevisionsAlgorithmName string `xml:"revisionsAlgorithmName,attr,omitempty"`
+ RevisionsHashValue string `xml:"revisionsHashValue,attr,omitempty"`
+ RevisionsSaltValue string `xml:"revisionsSaltValue,attr,omitempty"`
+ RevisionsSpinCount int `xml:"revisionsSpinCount,attr,omitempty"`
+ WorkbookAlgorithmName string `xml:"workbookAlgorithmName,attr,omitempty"`
+ WorkbookHashValue string `xml:"workbookHashValue,attr,omitempty"`
+ WorkbookSaltValue string `xml:"workbookSaltValue,attr,omitempty"`
+ WorkbookSpinCount int `xml:"workbookSpinCount,attr,omitempty"`
+}
+
+// xlsxFileVersion directly maps the fileVersion element. This element
+// defines properties that track which version of the application accessed
+// the data and source code contained in the file.
type xlsxFileVersion struct {
AppName string `xml:"appName,attr,omitempty"`
+ CodeName string `xml:"codeName,attr,omitempty"`
LastEdited string `xml:"lastEdited,attr,omitempty"`
LowestEdited string `xml:"lowestEdited,attr,omitempty"`
RupBuild string `xml:"rupBuild,attr,omitempty"`
@@ -71,45 +91,57 @@ type xlsxFileVersion struct {
// xlsxWorkbookPr directly maps the workbookPr element from the
// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main
-// - currently I have not checked it for completeness - it does as
-// much as I need.
+// This element defines a collection of workbook properties.
type xlsxWorkbookPr struct {
- DefaultThemeVersion string `xml:"defaultThemeVersion,attr,omitempty"`
- BackupFile bool `xml:"backupFile,attr,omitempty"`
- ShowObjects string `xml:"showObjects,attr,omitempty"`
- Date1904 bool `xml:"date1904,attr,omitempty"`
- CodeName string `xml:"codeName,attr,omitempty"`
-}
-
-// xlsxBookViews directly maps the bookViews element from the
-// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main
-// - currently I have not checked it for completeness - it does as
-// much as I need.
+ AllowRefreshQuery bool `xml:"allowRefreshQuery,attr,omitempty"`
+ AutoCompressPictures bool `xml:"autoCompressPictures,attr,omitempty"`
+ BackupFile bool `xml:"backupFile,attr,omitempty"`
+ CheckCompatibility bool `xml:"checkCompatibility,attr,omitempty"`
+ CodeName string `xml:"codeName,attr,omitempty"`
+ Date1904 bool `xml:"date1904,attr,omitempty"`
+ DefaultThemeVersion string `xml:"defaultThemeVersion,attr,omitempty"`
+ FilterPrivacy bool `xml:"filterPrivacy,attr,omitempty"`
+ HidePivotFieldList bool `xml:"hidePivotFieldList,attr,omitempty"`
+ PromptedSolutions bool `xml:"promptedSolutions,attr,omitempty"`
+ PublishItems bool `xml:"publishItems,attr,omitempty"`
+ RefreshAllConnections bool `xml:"refreshAllConnections,attr,omitempty"`
+ SaveExternalLinkValues bool `xml:"saveExternalLinkValues,attr,omitempty"`
+ ShowBorderUnselectedTables bool `xml:"showBorderUnselectedTables,attr,omitempty"`
+ ShowInkAnnotation bool `xml:"showInkAnnotation,attr,omitempty"`
+ ShowObjects string `xml:"showObjects,attr,omitempty"`
+ ShowPivotChartFilter bool `xml:"showPivotChartFilter,attr,omitempty"`
+ UpdateLinks string `xml:"updateLinks,attr,omitempty"`
+}
+
+// xlsxBookViews directly maps the bookViews element. This element specifies
+// the collection of workbook views of the enclosing workbook. Each view can
+// specify a window position, filter options, and other configurations. There
+// is no limit on the number of workbook views that can be defined for a workbook.
type xlsxBookViews struct {
WorkBookView []xlsxWorkBookView `xml:"workbookView"`
}
// xlsxWorkBookView directly maps the workbookView element from the
// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main
-// - currently I have not checked it for completeness - it does as
-// much as I need.
+// This element specifies a single Workbook view.
type xlsxWorkBookView struct {
- ActiveTab int `xml:"activeTab,attr,omitempty"`
- FirstSheet int `xml:"firstSheet,attr,omitempty"`
- ShowHorizontalScroll bool `xml:"showHorizontalScroll,attr,omitempty"`
- ShowVerticalScroll bool `xml:"showVerticalScroll,attr,omitempty"`
- ShowSheetTabs bool `xml:"showSheetTabs,attr,omitempty"`
- TabRatio int `xml:"tabRatio,attr,omitempty"`
- WindowHeight int `xml:"windowHeight,attr,omitempty"`
- WindowWidth int `xml:"windowWidth,attr,omitempty"`
- XWindow string `xml:"xWindow,attr,omitempty"`
- YWindow string `xml:"yWindow,attr,omitempty"`
+ ActiveTab int `xml:"activeTab,attr,omitempty"`
+ AutoFilterDateGrouping bool `xml:"autoFilterDateGrouping,attr,omitempty"`
+ FirstSheet int `xml:"firstSheet,attr,omitempty"`
+ Minimized bool `xml:"minimized,attr,omitempty"`
+ ShowHorizontalScroll bool `xml:"showHorizontalScroll,attr,omitempty"`
+ ShowSheetTabs bool `xml:"showSheetTabs,attr,omitempty"`
+ ShowVerticalScroll bool `xml:"showVerticalScroll,attr,omitempty"`
+ TabRatio int `xml:"tabRatio,attr,omitempty"`
+ Visibility string `xml:"visibility,attr,omitempty"`
+ WindowHeight int `xml:"windowHeight,attr,omitempty"`
+ WindowWidth int `xml:"windowWidth,attr,omitempty"`
+ XWindow string `xml:"xWindow,attr,omitempty"`
+ YWindow string `xml:"yWindow,attr,omitempty"`
}
// xlsxSheets directly maps the sheets element from the namespace
-// http://schemas.openxmlformats.org/spreadsheetml/2006/main -
-// currently I have not checked it for completeness - it does as much
-// as I need.
+// http://schemas.openxmlformats.org/spreadsheetml/2006/main.
type xlsxSheets struct {
Sheet []xlsxSheet `xml:"sheet"`
}
@@ -162,47 +194,57 @@ type xlsxExtLst struct {
Ext string `xml:",innerxml"`
}
-// xlsxDefinedNames directly maps the definedNames element from the
-// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main
-// - currently I have not checked it for completeness - it does as
-// much as I need.
+// xlsxDefinedNames directly maps the definedNames element. This element
+// defines the collection of defined names for this workbook. Defined
+// names are descriptive names to represent cells, ranges of cells,
+// formulas, or constant values. Defined names can be used to represent
+// a range on any worksheet.
type xlsxDefinedNames struct {
DefinedName []xlsxDefinedName `xml:"definedName"`
}
// xlsxDefinedName directly maps the definedName element from the
// namespace http://schemas.openxmlformats.org/spreadsheetml/2006/main
-// - currently I have not checked it for completeness - it does as
-// much as I need.
-// for a descriptions of the attributes see
-// https://msdn.microsoft.com/en-us/library/office/documentformat.openxml.spreadsheet.definedname.aspx
+// This element defines a defined name within this workbook. A defined
+// name is descriptive text that is used to represents a cell, range of
+// cells, formula, or constant value. For a descriptions of the attributes
+// see https://msdn.microsoft.com/en-us/library/office/documentformat.openxml.spreadsheet.definedname.aspx
type xlsxDefinedName struct {
- Data string `xml:",chardata"`
- Name string `xml:"name,attr"`
Comment string `xml:"comment,attr,omitempty"`
CustomMenu string `xml:"customMenu,attr,omitempty"`
Description string `xml:"description,attr,omitempty"`
+ Function bool `xml:"function,attr,omitempty"`
+ FunctionGroupID int `xml:"functionGroupId,attr,omitempty"`
Help string `xml:"help,attr,omitempty"`
+ Hidden bool `xml:"hidden,attr,omitempty"`
+ LocalSheetID int `xml:"localSheetId,attr,omitempty"`
+ Name string `xml:"name,attr,omitempty"`
+ PublishToServer bool `xml:"publishToServer,attr,omitempty"`
ShortcutKey string `xml:"shortcutKey,attr,omitempty"`
StatusBar string `xml:"statusBar,attr,omitempty"`
- LocalSheetID int `xml:"localSheetId,attr,omitempty"`
- FunctionGroupID int `xml:"functionGroupId,attr,omitempty"`
- Function bool `xml:"function,attr,omitempty"`
- Hidden bool `xml:"hidden,attr,omitempty"`
VbProcedure bool `xml:"vbProcedure,attr,omitempty"`
- PublishToServer bool `xml:"publishToServer,attr,omitempty"`
WorkbookParameter bool `xml:"workbookParameter,attr,omitempty"`
Xlm bool `xml:"xml,attr,omitempty"`
+ Data string `xml:",chardata"`
}
-// xlsxCalcPr directly maps the calcPr element from the namespace
-// http://schemas.openxmlformats.org/spreadsheetml/2006/main -
-// currently I have not checked it for completeness - it does as much
-// as I need.
+// xlsxCalcPr directly maps the calcPr element. This element defines the
+// collection of properties the application uses to record calculation
+// status and details. Calculation is the process of computing formulas
+// and then displaying the results as values in the cells that contain
+// the formulas.
type xlsxCalcPr struct {
- CalcID string `xml:"calcId,attr,omitempty"`
- IterateCount int `xml:"iterateCount,attr,omitempty"`
- RefMode string `xml:"refMode,attr,omitempty"`
- Iterate bool `xml:"iterate,attr,omitempty"`
- IterateDelta float64 `xml:"iterateDelta,attr,omitempty"`
+ CalcCompleted bool `xml:"calcCompleted,attr,omitempty"`
+ CalcID string `xml:"calcId,attr,omitempty"`
+ CalcMode string `xml:"calcMode,attr,omitempty"`
+ CalcOnSave bool `xml:"calcOnSave,attr,omitempty"`
+ ConcurrentCalc bool `xml:"concurrentCalc,attr,omitempty"`
+ ConcurrentManualCount int `xml:"concurrentManualCount,attr,omitempty"`
+ ForceFullCalc bool `xml:"forceFullCalc,attr,omitempty"`
+ FullCalcOnLoad bool `xml:"fullCalcOnLoad,attr,omitempty"`
+ FullPrecision bool `xml:"fullPrecision,attr,omitempty"`
+ Iterate bool `xml:"iterate,attr,omitempty"`
+ IterateCount int `xml:"iterateCount,attr,omitempty"`
+ IterateDelta float64 `xml:"iterateDelta,attr,omitempty"`
+ RefMode string `xml:"refMode,attr,omitempty"`
}