This closes #1257, fix incorrect worksheet header footer fields order

This commit is contained in:
xuri 2022-06-21 20:08:47 +08:00
parent 7819cd7fec
commit 852f211970
No known key found for this signature in database
GPG Key ID: BA5E5BB1C948EDF7
4 changed files with 22 additions and 21 deletions

View File

@ -234,9 +234,11 @@ func (f *File) workSheetReader(sheet string) (ws *xlsxWorksheet, err error) {
ws = worksheet.(*xlsxWorksheet)
return
}
if strings.HasPrefix(name, "xl/chartsheets") || strings.HasPrefix(name, "xl/macrosheet") {
err = fmt.Errorf("sheet %s is not a worksheet", sheet)
return
for _, sheetType := range []string{"xl/chartsheets", "xl/dialogsheet", "xl/macrosheet"} {
if strings.HasPrefix(name, sheetType) {
err = fmt.Errorf("sheet %s is not a worksheet", sheet)
return
}
}
ws = new(xlsxWorksheet)
if _, ok := f.xmlAttr[name]; !ok {

View File

@ -280,7 +280,7 @@ func (f *File) SetActiveSheet(index int) {
for idx, name := range f.GetSheetList() {
ws, err := f.workSheetReader(name)
if err != nil {
// Chartsheet or dialogsheet
// Chartsheet, macrosheet or dialogsheet
return
}
if ws.SheetViews == nil {

View File

@ -22,8 +22,8 @@ import (
type xlsxTypes struct {
sync.Mutex
XMLName xml.Name `xml:"http://schemas.openxmlformats.org/package/2006/content-types Types"`
Overrides []xlsxOverride `xml:"Override"`
Defaults []xlsxDefault `xml:"Default"`
Overrides []xlsxOverride `xml:"Override"`
}
// xlsxOverride directly maps the override element in the namespace

View File

@ -78,18 +78,17 @@ type xlsxDrawing struct {
// 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"`
AlignWithMargins bool `xml:"alignWithMargins,attr,omitempty"`
DifferentFirst bool `xml:"differentFirst,attr,omitempty"`
DifferentOddEven bool `xml:"differentOddEven,attr,omitempty"`
ScaleWithDoc bool `xml:"scaleWithDoc,attr,omitempty"`
OddHeader string `xml:"oddHeader,omitempty"`
OddFooter string `xml:"oddFooter,omitempty"`
EvenHeader string `xml:"evenHeader,omitempty"`
EvenFooter string `xml:"evenFooter,omitempty"`
FirstFooter string `xml:"firstFooter,omitempty"`
FirstHeader string `xml:"firstHeader,omitempty"`
DrawingHF *xlsxDrawingHF `xml:"drawingHF"`
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
@ -147,12 +146,12 @@ type xlsxPrintOptions struct {
// a sheet or a custom sheet view.
type xlsxPageMargins struct {
XMLName xml.Name `xml:"pageMargins"`
Bottom float64 `xml:"bottom,attr"`
Footer float64 `xml:"footer,attr"`
Header float64 `xml:"header,attr"`
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
@ -880,8 +879,8 @@ type FormatHeaderFooter struct {
OddFooter string
EvenHeader string
EvenFooter string
FirstFooter string
FirstHeader string
FirstFooter string
}
// FormatPageMargins directly maps the settings of page margins