This add new exported function GetHeaderFooter (#1720)
This commit is contained in:
parent
5e247de805
commit
3bdc2c5fc7
26
sheet.go
26
sheet.go
|
@ -1289,6 +1289,32 @@ func (f *File) SetHeaderFooter(sheet string, opts *HeaderFooterOptions) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// GetHeaderFooter provides a function to get worksheet header and footer by
|
||||
// given worksheet name.
|
||||
func (f *File) GetHeaderFooter(sheet string) (*HeaderFooterOptions, error) {
|
||||
var opts *HeaderFooterOptions
|
||||
ws, err := f.workSheetReader(sheet)
|
||||
if err != nil {
|
||||
return opts, err
|
||||
}
|
||||
if ws.HeaderFooter == nil {
|
||||
return opts, err
|
||||
}
|
||||
opts = &HeaderFooterOptions{
|
||||
AlignWithMargins: ws.HeaderFooter.AlignWithMargins,
|
||||
DifferentFirst: ws.HeaderFooter.DifferentFirst,
|
||||
DifferentOddEven: ws.HeaderFooter.DifferentOddEven,
|
||||
ScaleWithDoc: ws.HeaderFooter.ScaleWithDoc,
|
||||
OddHeader: ws.HeaderFooter.OddHeader,
|
||||
OddFooter: ws.HeaderFooter.OddFooter,
|
||||
EvenHeader: ws.HeaderFooter.EvenHeader,
|
||||
EvenFooter: ws.HeaderFooter.EvenFooter,
|
||||
FirstHeader: ws.HeaderFooter.FirstHeader,
|
||||
FirstFooter: ws.HeaderFooter.FirstFooter,
|
||||
}
|
||||
return opts, err
|
||||
}
|
||||
|
||||
// ProtectSheet provides a function to prevent other users from accidentally or
|
||||
// deliberately changing, moving, or deleting data in a worksheet. The
|
||||
// optional field AlgorithmName specified hash algorithm, support XOR, MD4,
|
||||
|
|
|
@ -231,8 +231,16 @@ func TestGetPageLayout(t *testing.T) {
|
|||
assert.EqualError(t, err, ErrSheetNameInvalid.Error())
|
||||
}
|
||||
|
||||
func TestSetHeaderFooter(t *testing.T) {
|
||||
func TestHeaderFooter(t *testing.T) {
|
||||
f := NewFile()
|
||||
// Test get header and footer with default header and footer settings
|
||||
opts, err := f.GetHeaderFooter("Sheet1")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, (*HeaderFooterOptions)(nil), opts)
|
||||
// Test get header and footer on not exists worksheet
|
||||
_, err = f.GetHeaderFooter("SheetN")
|
||||
assert.EqualError(t, err, "sheet SheetN does not exist")
|
||||
|
||||
assert.NoError(t, f.SetCellStr("Sheet1", "A1", "Test SetHeaderFooter"))
|
||||
// Test set header and footer on not exists worksheet
|
||||
assert.EqualError(t, f.SetHeaderFooter("SheetN", nil), "sheet SheetN does not exist")
|
||||
|
@ -252,7 +260,7 @@ func TestSetHeaderFooter(t *testing.T) {
|
|||
EvenFooter: text,
|
||||
FirstHeader: text,
|
||||
}))
|
||||
assert.NoError(t, f.SetHeaderFooter("Sheet1", &HeaderFooterOptions{
|
||||
expected := &HeaderFooterOptions{
|
||||
DifferentFirst: true,
|
||||
DifferentOddEven: true,
|
||||
OddHeader: "&R&P",
|
||||
|
@ -260,7 +268,11 @@ func TestSetHeaderFooter(t *testing.T) {
|
|||
EvenHeader: "&L&P",
|
||||
EvenFooter: "&L&D&R&T",
|
||||
FirstHeader: `&CCenter &"-,Bold"Bold&"-,Regular"HeaderU+000A&D`,
|
||||
}))
|
||||
}
|
||||
assert.NoError(t, f.SetHeaderFooter("Sheet1", expected))
|
||||
opts, err = f.GetHeaderFooter("Sheet1")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, expected, opts)
|
||||
assert.NoError(t, f.SaveAs(filepath.Join("test", "TestSetHeaderFooter.xlsx")))
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue