/** * 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); }