summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cellmerged.go14
-rw-r--r--[-rwxr-xr-x]docProps.go0
-rw-r--r--docProps_test.go56
-rw-r--r--excelize_test.go2
-rw-r--r--xmlChart.go328
-rw-r--r--[-rwxr-xr-x]xmlCore.go0
-rw-r--r--[-rwxr-xr-x]xmlDrawing.go0
-rw-r--r--xmlWorksheet.go86
8 files changed, 306 insertions, 180 deletions
diff --git a/cellmerged.go b/cellmerged.go
index 5392463..a78b244 100644
--- a/cellmerged.go
+++ b/cellmerged.go
@@ -1,8 +1,18 @@
+// Copyright 2016 - 2019 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 files. Support reads and writes XLSX file generated by
+// Microsoft Excelâ„¢ 2007 and later. Support save file without losing original
+// charts of XLSX. This library needs Go version 1.8 or later.
+
package excelize
import "strings"
-// GetMergeCells provides a function to get all merged cells from a worksheet currently.
+// GetMergeCells provides a function to get all merged cells from a worksheet
+// currently.
func (f *File) GetMergeCells(sheet string) ([]MergeCell, error) {
var mergeCells []MergeCell
xlsx, err := f.workSheetReader(sheet)
@@ -45,4 +55,4 @@ func (m *MergeCell) GetStartAxis() string {
func (m *MergeCell) GetEndAxis() string {
axis := strings.Split((*m)[0], ":")
return axis[1]
-} \ No newline at end of file
+}
diff --git a/docProps.go b/docProps.go
index 0f44ac4..0f44ac4 100755..100644
--- a/docProps.go
+++ b/docProps.go
diff --git a/docProps_test.go b/docProps_test.go
new file mode 100644
index 0000000..1f52beb
--- /dev/null
+++ b/docProps_test.go
@@ -0,0 +1,56 @@
+// Copyright 2016 - 2019 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 files. Support reads and writes XLSX file generated by
+// Microsoft Excelâ„¢ 2007 and later. Support save file without losing original
+// charts of XLSX. This library needs Go version 1.8 or later.
+
+package excelize
+
+import (
+ "path/filepath"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestSetDocProps(t *testing.T) {
+ f, err := OpenFile(filepath.Join("test", "Book1.xlsx"))
+ if !assert.NoError(t, err) {
+ t.FailNow()
+ }
+ assert.NoError(t, f.SetDocProps(&DocProperties{
+ Category: "category",
+ ContentStatus: "Draft",
+ Created: "2019-06-04T22:00:10Z",
+ Creator: "Go Excelize",
+ Description: "This file created by Go Excelize",
+ Identifier: "xlsx",
+ Keywords: "Spreadsheet",
+ LastModifiedBy: "Go Author",
+ Modified: "2019-06-04T22:00:10Z",
+ Revision: "0",
+ Subject: "Test Subject",
+ Title: "Test Title",
+ Language: "en-US",
+ Version: "1.0.0",
+ }))
+ assert.NoError(t, f.SaveAs(filepath.Join("test", "TestSetDocProps.xlsx")))
+ f.XLSX["docProps/core.xml"] = nil
+ assert.EqualError(t, f.SetDocProps(&DocProperties{}), "EOF")
+}
+
+func TestGetDocProps(t *testing.T) {
+ f, err := OpenFile(filepath.Join("test", "Book1.xlsx"))
+ if !assert.NoError(t, err) {
+ t.FailNow()
+ }
+ props, err := f.GetDocProps()
+ assert.NoError(t, err)
+ assert.Equal(t, props.Creator, "Microsoft Office User")
+ f.XLSX["docProps/core.xml"] = nil
+ _, err = f.GetDocProps()
+ assert.EqualError(t, err, "EOF")
+}
diff --git a/excelize_test.go b/excelize_test.go
index 85df09b..1a3dde6 100644
--- a/excelize_test.go
+++ b/excelize_test.go
@@ -192,7 +192,7 @@ func TestBrokenFile(t *testing.T) {
t.Run("SaveAsEmptyStruct", func(t *testing.T) {
// Test write file with broken file struct with given path.
- assert.NoError(t, f.SaveAs(filepath.Join("test", "TestBrokenFile.SaveAsEmptyStruct.xlsx")))
+ assert.NoError(t, f.SaveAs(filepath.Join("test", "BrokenFile.SaveAsEmptyStruct.xlsx")))
})
t.Run("OpenBadWorkbook", func(t *testing.T) {
diff --git a/xmlChart.go b/xmlChart.go
index 163812d..972ead3 100644
--- a/xmlChart.go
+++ b/xmlChart.go
@@ -11,66 +11,66 @@ package excelize
import "encoding/xml"
-// xlsxChartSpace directly maps the c:chartSpace element. The chart namespace in
+// xlsxChartSpace directly maps the chartSpace element. The chart namespace in
// DrawingML is for representing visualizations of numeric data with column
// charts, pie charts, scatter charts, or other types of charts.
type xlsxChartSpace struct {
- XMLName xml.Name `xml:"c:chartSpace"`
+ XMLName xml.Name `xml:"http://schemas.openxmlformats.org/drawingml/2006/chart chartSpace"`
XMLNSc string `xml:"xmlns:c,attr"`
XMLNSa string `xml:"xmlns:a,attr"`
XMLNSr string `xml:"xmlns:r,attr"`
XMLNSc16r2 string `xml:"xmlns:c16r2,attr"`
- Date1904 *attrValBool `xml:"c:date1904"`
- Lang *attrValString `xml:"c:lang"`
- RoundedCorners *attrValBool `xml:"c:roundedCorners"`
- Chart cChart `xml:"c:chart"`
- SpPr *cSpPr `xml:"c:spPr"`
- TxPr *cTxPr `xml:"c:txPr"`
- PrintSettings *cPrintSettings `xml:"c:printSettings"`
-}
-
-// cThicknessSpPr directly maps the element that specifies the thickness of the
-// walls or floor as a percentage of the largest dimension of the plot volume
-// and SpPr element.
+ Date1904 *attrValBool `xml:"date1904"`
+ Lang *attrValString `xml:"lang"`
+ RoundedCorners *attrValBool `xml:"roundedCorners"`
+ Chart cChart `xml:"chart"`
+ SpPr *cSpPr `xml:"spPr"`
+ TxPr *cTxPr `xml:"txPr"`
+ PrintSettings *cPrintSettings `xml:"printSettings"`
+}
+
+// cThicknessSpPr directly maps the element that specifies the thickness of
+// the walls or floor as a percentage of the largest dimension of the plot
+// volume and SpPr element.
type cThicknessSpPr struct {
- Thickness *attrValInt `xml:"c:thickness"`
- SpPr *cSpPr `xml:"c:spPr"`
+ Thickness *attrValInt `xml:"thickness"`
+ SpPr *cSpPr `xml:"spPr"`
}
-// cChart (Chart) directly maps the c:chart element. This element specifies a
+// cChart (Chart) directly maps the chart element. This element specifies a
// title.
type cChart struct {
- Title *cTitle `xml:"c:title"`
- AutoTitleDeleted *cAutoTitleDeleted `xml:"c:autoTitleDeleted"`
- View3D *cView3D `xml:"c:view3D"`
- Floor *cThicknessSpPr `xml:"c:floor"`
- SideWall *cThicknessSpPr `xml:"c:sideWall"`
- BackWall *cThicknessSpPr `xml:"c:backWall"`
- PlotArea *cPlotArea `xml:"c:plotArea"`
- Legend *cLegend `xml:"c:legend"`
- PlotVisOnly *attrValBool `xml:"c:plotVisOnly"`
- DispBlanksAs *attrValString `xml:"c:dispBlanksAs"`
- ShowDLblsOverMax *attrValBool `xml:"c:showDLblsOverMax"`
-}
-
-// cTitle (Title) directly maps the c:title element. This element specifies a
+ Title *cTitle `xml:"title"`
+ AutoTitleDeleted *cAutoTitleDeleted `xml:"autoTitleDeleted"`
+ View3D *cView3D `xml:"view3D"`
+ Floor *cThicknessSpPr `xml:"floor"`
+ SideWall *cThicknessSpPr `xml:"sideWall"`
+ BackWall *cThicknessSpPr `xml:"backWall"`
+ PlotArea *cPlotArea `xml:"plotArea"`
+ Legend *cLegend `xml:"legend"`
+ PlotVisOnly *attrValBool `xml:"plotVisOnly"`
+ DispBlanksAs *attrValString `xml:"dispBlanksAs"`
+ ShowDLblsOverMax *attrValBool `xml:"showDLblsOverMax"`
+}
+
+// cTitle (Title) directly maps the title element. This element specifies a
// title.
type cTitle struct {
- Tx cTx `xml:"c:tx,omitempty"`
- Layout string `xml:"c:layout,omitempty"`
- Overlay attrValBool `xml:"c:overlay,omitempty"`
- SpPr cSpPr `xml:"c:spPr,omitempty"`
- TxPr cTxPr `xml:"c:txPr,omitempty"`
+ Tx cTx `xml:"tx,omitempty"`
+ Layout string `xml:"layout,omitempty"`
+ Overlay attrValBool `xml:"overlay,omitempty"`
+ SpPr cSpPr `xml:"spPr,omitempty"`
+ TxPr cTxPr `xml:"txPr,omitempty"`
}
-// cTx (Chart Text) directly maps the c:tx element. This element specifies text
+// cTx (Chart Text) directly maps the tx element. This element specifies text
// to use on a chart, including rich text formatting.
type cTx struct {
- StrRef *cStrRef `xml:"c:strRef"`
- Rich *cRich `xml:"c:rich,omitempty"`
+ StrRef *cStrRef `xml:"strRef"`
+ Rich *cRich `xml:"rich,omitempty"`
}
-// cRich (Rich Text) directly maps the c:rich element. This element contains a
+// cRich (Rich Text) directly maps the rich element. This element contains a
// string with rich text formatting.
type cRich struct {
BodyPr aBodyPr `xml:"a:bodyPr,omitempty"`
@@ -186,7 +186,7 @@ type aR struct {
T string `xml:"a:t,omitempty"`
}
-// aRPr (Run Properties) directly maps the c:rPr element. This element
+// aRPr (Run Properties) directly maps the rPr element. This element
// specifies a set of run properties which shall be applied to the contents of
// the parent run after all style formatting has been applied to the text. These
// properties are defined as direct formatting, since they are directly applied
@@ -217,7 +217,7 @@ type aRPr struct {
Cs *aCs `xml:"a:cs"`
}
-// cSpPr (Shape Properties) directly maps the c:spPr element. This element
+// cSpPr (Shape Properties) directly maps the spPr element. This element
// specifies the visual shape properties that can be applied to a shape. These
// properties include the shape fill, outline, geometry, effects, and 3D
// orientation.
@@ -259,7 +259,7 @@ type aLn struct {
SolidFill *aSolidFill `xml:"a:solidFill"`
}
-// cTxPr (Text Properties) directly maps the c:txPr element. This element
+// cTxPr (Text Properties) directly maps the txPr element. This element
// specifies text formatting. The lstStyle element is not supported.
type cTxPr struct {
BodyPr aBodyPr `xml:"a:bodyPr,omitempty"`
@@ -282,207 +282,207 @@ type aEndParaRPr struct {
}
// cAutoTitleDeleted (Auto Title Is Deleted) directly maps the
-// c:autoTitleDeleted element. This element specifies the title shall not be
+// autoTitleDeleted element. This element specifies the title shall not be
// shown for this chart.
type cAutoTitleDeleted struct {
Val bool `xml:"val,attr"`
}
-// cView3D (View In 3D) directly maps the c:view3D element. This element
+// cView3D (View In 3D) directly maps the view3D element. This element
// specifies the 3-D view of the chart.
type cView3D struct {
- RotX *attrValInt `xml:"c:rotX"`
- RotY *attrValInt `xml:"c:rotY"`
- DepthPercent *attrValInt `xml:"c:depthPercent"`
- RAngAx *attrValInt `xml:"c:rAngAx"`
+ RotX *attrValInt `xml:"rotX"`
+ RotY *attrValInt `xml:"rotY"`
+ DepthPercent *attrValInt `xml:"depthPercent"`
+ RAngAx *attrValInt `xml:"rAngAx"`
}
-// cPlotArea directly maps the c:plotArea element. This element specifies the
+// cPlotArea directly maps the plotArea element. This element specifies the
// plot area of the chart.
type cPlotArea struct {
- Layout *string `xml:"c:layout"`
- AreaChart *cCharts `xml:"c:areaChart"`
- Area3DChart *cCharts `xml:"c:area3DChart"`
- BarChart *cCharts `xml:"c:barChart"`
- Bar3DChart *cCharts `xml:"c:bar3DChart"`
- DoughnutChart *cCharts `xml:"c:doughnutChart"`
- LineChart *cCharts `xml:"c:lineChart"`
- PieChart *cCharts `xml:"c:pieChart"`
- Pie3DChart *cCharts `xml:"c:pie3DChart"`
- RadarChart *cCharts `xml:"c:radarChart"`
- ScatterChart *cCharts `xml:"c:scatterChart"`
- CatAx []*cAxs `xml:"c:catAx"`
- ValAx []*cAxs `xml:"c:valAx"`
- SpPr *cSpPr `xml:"c:spPr"`
+ Layout *string `xml:"layout"`
+ AreaChart *cCharts `xml:"areaChart"`
+ Area3DChart *cCharts `xml:"area3DChart"`
+ BarChart *cCharts `xml:"barChart"`
+ Bar3DChart *cCharts `xml:"bar3DChart"`
+ DoughnutChart *cCharts `xml:"doughnutChart"`
+ LineChart *cCharts `xml:"lineChart"`
+ PieChart *cCharts `xml:"pieChart"`
+ Pie3DChart *cCharts `xml:"pie3DChart"`
+ RadarChart *cCharts `xml:"radarChart"`
+ ScatterChart *cCharts `xml:"scatterChart"`
+ CatAx []*cAxs `xml:"catAx"`
+ ValAx []*cAxs `xml:"valAx"`
+ SpPr *cSpPr `xml:"spPr"`
}
// cCharts specifies the common element of the chart.
type cCharts struct {
- BarDir *attrValString `xml:"c:barDir"`
- Grouping *attrValString `xml:"c:grouping"`
- RadarStyle *attrValString `xml:"c:radarStyle"`
- ScatterStyle *attrValString `xml:"c:scatterStyle"`
- VaryColors *attrValBool `xml:"c:varyColors"`
- Ser *[]cSer `xml:"c:ser"`
- DLbls *cDLbls `xml:"c:dLbls"`
- HoleSize *attrValInt `xml:"c:holeSize"`
- Smooth *attrValBool `xml:"c:smooth"`
- Overlap *attrValInt `xml:"c:overlap"`
- AxID []*attrValInt `xml:"c:axId"`
-}
-
-// cAxs directly maps the c:catAx and c:valAx element.
+ BarDir *attrValString `xml:"barDir"`
+ Grouping *attrValString `xml:"grouping"`
+ RadarStyle *attrValString `xml:"radarStyle"`
+ ScatterStyle *attrValString `xml:"scatterStyle"`
+ VaryColors *attrValBool `xml:"varyColors"`
+ Ser *[]cSer `xml:"ser"`
+ DLbls *cDLbls `xml:"dLbls"`
+ HoleSize *attrValInt `xml:"holeSize"`
+ Smooth *attrValBool `xml:"smooth"`
+ Overlap *attrValInt `xml:"overlap"`
+ AxID []*attrValInt `xml:"axId"`
+}
+
+// cAxs directly maps the catAx and valAx element.
type cAxs struct {
- AxID *attrValInt `xml:"c:axId"`
- Scaling *cScaling `xml:"c:scaling"`
- Delete *attrValBool `xml:"c:delete"`
- AxPos *attrValString `xml:"c:axPos"`
- NumFmt *cNumFmt `xml:"c:numFmt"`
- MajorTickMark *attrValString `xml:"c:majorTickMark"`
- MinorTickMark *attrValString `xml:"c:minorTickMark"`
- TickLblPos *attrValString `xml:"c:tickLblPos"`
- SpPr *cSpPr `xml:"c:spPr"`
- TxPr *cTxPr `xml:"c:txPr"`
- CrossAx *attrValInt `xml:"c:crossAx"`
- Crosses *attrValString `xml:"c:crosses"`
- CrossBetween *attrValString `xml:"c:crossBetween"`
- Auto *attrValBool `xml:"c:auto"`
- LblAlgn *attrValString `xml:"c:lblAlgn"`
- LblOffset *attrValInt `xml:"c:lblOffset"`
- NoMultiLvlLbl *attrValBool `xml:"c:noMultiLvlLbl"`
-}
-
-// cScaling directly maps the c:scaling element. This element contains
+ AxID *attrValInt `xml:"axId"`
+ Scaling *cScaling `xml:"scaling"`
+ Delete *attrValBool `xml:"delete"`
+ AxPos *attrValString `xml:"axPos"`
+ NumFmt *cNumFmt `xml:"numFmt"`
+ MajorTickMark *attrValString `xml:"majorTickMark"`
+ MinorTickMark *attrValString `xml:"minorTickMark"`
+ TickLblPos *attrValString `xml:"tickLblPos"`
+ SpPr *cSpPr `xml:"spPr"`
+ TxPr *cTxPr `xml:"txPr"`
+ CrossAx *attrValInt `xml:"crossAx"`
+ Crosses *attrValString `xml:"crosses"`
+ CrossBetween *attrValString `xml:"crossBetween"`
+ Auto *attrValBool `xml:"auto"`
+ LblAlgn *attrValString `xml:"lblAlgn"`
+ LblOffset *attrValInt `xml:"lblOffset"`
+ NoMultiLvlLbl *attrValBool `xml:"noMultiLvlLbl"`
+}
+
+// cScaling directly maps the scaling element. This element contains
// additional axis settings.
type cScaling struct {
- Orientation *attrValString `xml:"c:orientation"`
- Max *attrValFloat `xml:"c:max"`
- Min *attrValFloat `xml:"c:min"`
+ Orientation *attrValString `xml:"orientation"`
+ Max *attrValFloat `xml:"max"`
+ Min *attrValFloat `xml:"min"`
}
-// cNumFmt (Numbering Format) directly maps the c:numFmt element. This element
+// cNumFmt (Numbering Format) directly maps the numFmt element. This element
// specifies number formatting for the parent element.
type cNumFmt struct {
FormatCode string `xml:"formatCode,attr"`
SourceLinked bool `xml:"sourceLinked,attr"`
}
-// cSer directly maps the c:ser element. This element specifies a series on a
+// cSer directly maps the ser element. This element specifies a series on a
// chart.
type cSer struct {
- IDx *attrValInt `xml:"c:idx"`
- Order *attrValInt `xml:"c:order"`
- Tx *cTx `xml:"c:tx"`
- SpPr *cSpPr `xml:"c:spPr"`
- DPt []*cDPt `xml:"c:dPt"`
- DLbls *cDLbls `xml:"c:dLbls"`
- Marker *cMarker `xml:"c:marker"`
- InvertIfNegative *attrValBool `xml:"c:invertIfNegative"`
- Cat *cCat `xml:"c:cat"`
- Val *cVal `xml:"c:val"`
- XVal *cCat `xml:"c:xVal"`
- YVal *cVal `xml:"c:yVal"`
- Smooth *attrValBool `xml:"c:smooth"`
-}
-
-// cMarker (Marker) directly maps the c:marker element. This element specifies a
+ IDx *attrValInt `xml:"idx"`
+ Order *attrValInt `xml:"order"`
+ Tx *cTx `xml:"tx"`
+ SpPr *cSpPr `xml:"spPr"`
+ DPt []*cDPt `xml:"dPt"`
+ DLbls *cDLbls `xml:"dLbls"`
+ Marker *cMarker `xml:"marker"`
+ InvertIfNegative *attrValBool `xml:"invertIfNegative"`
+ Cat *cCat `xml:"cat"`
+ Val *cVal `xml:"val"`
+ XVal *cCat `xml:"xVal"`
+ YVal *cVal `xml:"yVal"`
+ Smooth *attrValBool `xml:"smooth"`
+}
+
+// cMarker (Marker) directly maps the marker element. This element specifies a
// data marker.
type cMarker struct {
- Symbol *attrValString `xml:"c:symbol"`
- Size *attrValInt `xml:"c:size"`
- SpPr *cSpPr `xml:"c:spPr"`
+ Symbol *attrValString `xml:"symbol"`
+ Size *attrValInt `xml:"size"`
+ SpPr *cSpPr `xml:"spPr"`
}
-// cDPt (Data Point) directly maps the c:dPt element. This element specifies a
+// cDPt (Data Point) directly maps the dPt element. This element specifies a
// single data point.
type cDPt struct {
- IDx *attrValInt `xml:"c:idx"`
- Bubble3D *attrValBool `xml:"c:bubble3D"`
- SpPr *cSpPr `xml:"c:spPr"`
+ IDx *attrValInt `xml:"idx"`
+ Bubble3D *attrValBool `xml:"bubble3D"`
+ SpPr *cSpPr `xml:"spPr"`
}
-// cCat (Category Axis Data) directly maps the c:cat element. This element
+// cCat (Category Axis Data) directly maps the cat element. This element
// specifies the data used for the category axis.
type cCat struct {
- StrRef *cStrRef `xml:"c:strRef"`
+ StrRef *cStrRef `xml:"strRef"`
}
-// cStrRef (String Reference) directly maps the c:strRef element. This element
+// cStrRef (String Reference) directly maps the strRef element. This element
// specifies a reference to data for a single data label or title with a cache
// of the last values used.
type cStrRef struct {
- F string `xml:"c:f"`
- StrCache *cStrCache `xml:"c:strCache"`
+ F string `xml:"f"`
+ StrCache *cStrCache `xml:"strCache"`
}
-// cStrCache (String Cache) directly maps the c:strCache element. This element
+// cStrCache (String Cache) directly maps the strCache element. This element
// specifies the last string data used for a chart.
type cStrCache struct {
- Pt []*cPt `xml:"c:pt"`
- PtCount *attrValInt `xml:"c:ptCount"`
+ Pt []*cPt `xml:"pt"`
+ PtCount *attrValInt `xml:"ptCount"`
}
-// cPt directly maps the c:pt element. This element specifies data for a
+// cPt directly maps the pt element. This element specifies data for a
// particular data point.
type cPt struct {
IDx int `xml:"idx,attr"`
- V *string `xml:"c:v"`
+ V *string `xml:"v"`
}
-// cVal directly maps the c:val element. This element specifies the data values
+// cVal directly maps the val element. This element specifies the data values
// which shall be used to define the location of data markers on a chart.
type cVal struct {
- NumRef *cNumRef `xml:"c:numRef"`
+ NumRef *cNumRef `xml:"numRef"`
}
-// cNumRef directly maps the c:numRef element. This element specifies a
+// cNumRef directly maps the numRef element. This element specifies a
// reference to numeric data with a cache of the last values used.
type cNumRef struct {
- F string `xml:"c:f"`
- NumCache *cNumCache `xml:"c:numCache"`
+ F string `xml:"f"`
+ NumCache *cNumCache `xml:"numCache"`
}
-// cNumCache directly maps the c:numCache element. This element specifies the
+// cNumCache directly maps the numCache element. This element specifies the
// last data shown on the chart for a series.
type cNumCache struct {
- FormatCode string `xml:"c:formatCode"`
- Pt []*cPt `xml:"c:pt"`
- PtCount *attrValInt `xml:"c:ptCount"`
+ FormatCode string `xml:"formatCode"`
+ Pt []*cPt `xml:"pt"`
+ PtCount *attrValInt `xml:"ptCount"`
}
-// cDLbls (Data Lables) directly maps the c:dLbls element. This element serves
+// cDLbls (Data Lables) directly maps the dLbls element. This element serves
// as a root element that specifies the settings for the data labels for an
// entire series or the entire chart. It contains child elements that specify
// the specific formatting and positioning settings.
type cDLbls struct {
- ShowLegendKey *attrValBool `xml:"c:showLegendKey"`
- ShowVal *attrValBool `xml:"c:showVal"`
- ShowCatName *attrValBool `xml:"c:showCatName"`
- ShowSerName *attrValBool `xml:"c:showSerName"`
- ShowPercent *attrValBool `xml:"c:showPercent"`
- ShowBubbleSize *attrValBool `xml:"c:showBubbleSize"`
- ShowLeaderLines *attrValBool `xml:"c:showLeaderLines"`
+ ShowLegendKey *attrValBool `xml:"showLegendKey"`
+ ShowVal *attrValBool `xml:"showVal"`
+ ShowCatName *attrValBool `xml:"showCatName"`
+ ShowSerName *attrValBool `xml:"showSerName"`
+ ShowPercent *attrValBool `xml:"showPercent"`
+ ShowBubbleSize *attrValBool `xml:"showBubbleSize"`
+ ShowLeaderLines *attrValBool `xml:"showLeaderLines"`
}
-// cLegend (Legend) directly maps the c:legend element. This element specifies
+// cLegend (Legend) directly maps the legend element. This element specifies
// the legend.
type cLegend struct {
- Layout *string `xml:"c:layout"`
- LegendPos *attrValString `xml:"c:legendPos"`
- Overlay *attrValBool `xml:"c:overlay"`
- SpPr *cSpPr `xml:"c:spPr"`
- TxPr *cTxPr `xml:"c:txPr"`
+ Layout *string `xml:"layout"`
+ LegendPos *attrValString `xml:"legendPos"`
+ Overlay *attrValBool `xml:"overlay"`
+ SpPr *cSpPr `xml:"spPr"`
+ TxPr *cTxPr `xml:"txPr"`
}
-// cPrintSettings directly maps the c:printSettings element. This element
+// cPrintSettings directly maps the printSettings element. This element
// specifies the print settings for the chart.
type cPrintSettings struct {
- HeaderFooter *string `xml:"c:headerFooter"`
- PageMargins *cPageMargins `xml:"c:pageMargins"`
- PageSetup *string `xml:"c:pageSetup"`
+ HeaderFooter *string `xml:"headerFooter"`
+ PageMargins *cPageMargins `xml:"pageMargins"`
+ PageSetup *string `xml:"pageSetup"`
}
-// cPageMargins directly maps the c:pageMargins element. This element specifies
+// cPageMargins directly maps the pageMargins element. This element specifies
// the page margins for a chart.
type cPageMargins struct {
B float64 `xml:"b,attr"`
diff --git a/xmlCore.go b/xmlCore.go
index 357f688..357f688 100755..100644
--- a/xmlCore.go
+++ b/xmlCore.go
diff --git a/xmlDrawing.go b/xmlDrawing.go
index 13e164e..13e164e 100755..100644
--- a/xmlDrawing.go
+++ b/xmlDrawing.go
diff --git a/xmlWorksheet.go b/xmlWorksheet.go
index f2eb47a..4d19cde 100644
--- a/xmlWorksheet.go
+++ b/xmlWorksheet.go
@@ -24,6 +24,7 @@ type xlsxWorksheet struct {
SheetData xlsxSheetData `xml:"sheetData"`
SheetProtection *xlsxSheetProtection `xml:"sheetProtection"`
AutoFilter *xlsxAutoFilter `xml:"autoFilter"`
+ CustomSheetViews *xlsxCustomSheetViews `xml:"customSheetViews"`
MergeCells *xlsxMergeCells `xml:"mergeCells"`
PhoneticPr *xlsxPhoneticPr `xml:"phoneticPr"`
ConditionalFormatting []*xlsxConditionalFormatting `xml:"conditionalFormatting"`
@@ -33,6 +34,8 @@ type xlsxWorksheet struct {
PageMargins *xlsxPageMargins `xml:"pageMargins"`
PageSetUp *xlsxPageSetUp `xml:"pageSetup"`
HeaderFooter *xlsxHeaderFooter `xml:"headerFooter"`
+ RowBreaks *xlsxBreaks `xml:"rowBreaks"`
+ ColBreaks *xlsxBreaks `xml:"colBreaks"`
Drawing *xlsxDrawing `xml:"drawing"`
LegacyDrawing *xlsxLegacyDrawing `xml:"legacyDrawing"`
Picture *xlsxPicture `xml:"picture"`
@@ -299,6 +302,63 @@ type xlsxRow struct {
C []xlsxC `xml:"c"`
}
+// xlsxCustomSheetViews directly maps the customSheetViews element. This is a
+// collection of custom sheet views.
+type xlsxCustomSheetViews struct {
+ 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"`
+}
+
+// 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 *xlsxExt `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"`
@@ -389,26 +449,26 @@ type xlsxF struct {
// enforce when the sheet is protected.
type xlsxSheetProtection struct {
AlgorithmName string `xml:"algorithmName,attr,omitempty"`
- AutoFilter bool `xml:"autoFilter,attr,omitempty"`
- DeleteColumns bool `xml:"deleteColumns,attr,omitempty"`
- DeleteRows bool `xml:"deleteRows,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,omitempty"`
+ Objects bool `xml:"objects,attr,omitempty"`
+ Scenarios bool `xml:"scenarios,attr,omitempty"`
FormatCells bool `xml:"formatCells,attr,omitempty"`
FormatColumns bool `xml:"formatColumns,attr,omitempty"`
FormatRows bool `xml:"formatRows,attr,omitempty"`
- HashValue string `xml:"hashValue,attr,omitempty"`
InsertColumns bool `xml:"insertColumns,attr,omitempty"`
- InsertHyperlinks bool `xml:"insertHyperlinks,attr,omitempty"`
InsertRows bool `xml:"insertRows,attr,omitempty"`
- Objects bool `xml:"objects,attr,omitempty"`
- Password string `xml:"password,attr,omitempty"`
- PivotTables bool `xml:"pivotTables,attr,omitempty"`
- SaltValue string `xml:"saltValue,attr,omitempty"`
- Scenarios bool `xml:"scenarios,attr,omitempty"`
+ InsertHyperlinks bool `xml:"insertHyperlinks,attr,omitempty"`
+ DeleteColumns bool `xml:"deleteColumns,attr,omitempty"`
+ DeleteRows bool `xml:"deleteRows,attr,omitempty"`
SelectLockedCells bool `xml:"selectLockedCells,attr,omitempty"`
- SelectUnlockedCells bool `xml:"selectUnlockedCells,attr,omitempty"`
- Sheet bool `xml:"sheet,attr,omitempty"`
Sort bool `xml:"sort,attr,omitempty"`
- SpinCount int `xml:"spinCount,attr,omitempty"`
+ AutoFilter bool `xml:"autoFilter,attr,omitempty"`
+ PivotTables bool `xml:"pivotTables,attr,omitempty"`
+ SelectUnlockedCells bool `xml:"selectUnlockedCells,attr,omitempty"`
}
// xlsxPhoneticPr (Phonetic Properties) represents a collection of phonetic