/**
  * renders an xlsx version of the report
  */
 public function xlsx()
 {
     $meta = array();
     $meta['creator'] = $_SESSION['username'] . ' using PSU Analytics';
     $meta['last_modified_by'] = $_SESSION['username'] . ' using PSU Analytics';
     $meta['title'] = $this->name;
     $meta['subject'] = $this->name;
     $meta['description'] = $this->name . ', generated using PSU Analytics.';
     $meta['keywords'] = $this->id . ' office 2007 openxml php psuanalytics ' . $_SESSION['username'];
     $meta['category'] = 'PSU Analytics';
     $meta['file_name'] = $this->id;
     $meta['types'] = array();
     if (!isset($this->sql)) {
         $meta['headings'] = array_keys($this->data[0]);
         $data = $this->data;
     } else {
         $meta['headings'] = array_keys($this->sql->cols);
         foreach ($this->sql->cols as $key => $field) {
             // in theory we can/should check more types, but even this simple check is WAYYYYY better than csv
             $meta['types'][$key] = $field->type == 'VARCHAR2' || $field->type == 'VARCHAR' ? 'string' : '';
         }
         // end foreach
         $data = $this->sql->data;
     }
     // end else
     PSU::xlsx($data, $meta);
 }