code: def render(self, f_buf=None):
          
          if f_buf is None:
              f_buf = StringIO.StringIO()
          with odswriter.writer(f_buf) as writer:
              default_sheet = writer.new_sheet(self.title)
              self._render_headers(default_sheet)
              self._render_rows(default_sheet)
  
              # abstract_sheet require the same attributes as our current writer
              for abstract_sheet in self.sheets:
                  sheet = writer.new_sheet(name=abstract_sheet.title)
                  abstract_sheet._render_headers(sheet)
                  abstract_sheet._render_rows(sheet)
          f_buf.seek(0)
          return f_buf
docs: Definitely render the workbook
  
          :param obj f_buf: A file buffer supporting the write and seek
          methods