func WithExcel(excel interface{}) OptionFn {
	wb, err := parseExcel(excel)
	if err != nil {
		log.Printf("W! failed to open excel %v", err)
		return nil
	}
	return func(o *Option) { o.Workbook = wb }
}
WithExcel defines the input excel file for reading.
The excel can be type of any of followings:
1. a string for direct excel file name
2. a []byte for the content of excel which loaded in advance, like use packr2 to read.
3. a io.Reader.
package xlsx
import (
	"bytes"
	"fmt"
	"io"
	"io/ioutil"
	"log"
	"github.com/unidoc/unioffice/spreadsheet"
)
func createOption(optionFns []OptionFn) *Option {
	option := &Option{}
	for _, fn := range optionFns {
		if fn != nil {
			fn(option)
		}
	}
	return option
}
type Option struct {
	TemplateWorkbook, Workbook *spreadsheet.Workbook
	Validations map[string][]string
}
type OptionFn func(*Option)
func WithTemplate(template interface{}) OptionFn {
	wb, err := parseExcel(template)
	if err != nil {
		log.Printf("W! failed to open template excel %v", err)
		return nil
	}
	return func(o *Option) { o.TemplateWorkbook = wb }
}