def workbook
      @workbook || @workbook = Workbook.new
      yield @workbook if block_given?
      @workbook
    end
The workbook this package will serialize or validate.
@return [Workbook] If no workbook instance has been assigned with this package a new Workbook instance is returned.
@raise ArgumentError if workbook parameter is not a Workbook instance.
@note As there are multiple ways to instantiate a workbook for the package,
here are a few examples:
# assign directly during package instanciation
wb = Package.new(:workbook => Workbook.new).workbook

# get a fresh workbook automatically from the package
wb = Pacakge.new().workbook
#     # set the workbook after creating the package
wb = Package.new().workbook = Workbook.new