$spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(70); // Translation
// Rename worksheet
- $spreadsheet->getActiveSheet()->setTitle(substr($this->post->post_name,0,30)); // 31 char maximum for sheet title
+ // We can't rely on post_name being set (eg. on drafts) so we fallback to the post title
+ $sheet_title = !empty($this->post->post_name) ? $this->post->post_name : sanitize_title($this->post->post_title);
+ $spreadsheet->getActiveSheet()->setTitle(substr($sheet_title,0,30)); // 31 char maximum for sheet title
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$spreadsheet->setActiveSheetIndex(0);
public function export_XLS($id) {
$spreadsheet = $this->prepare_spreadsheet($id);
+ $filename = !empty($this->post->post_name) ? $this->post->post_name : sanitize_title($this->post->post_title);
// Redirect output to the client's web browser (xls)
header('Content-Type: application/vnd.ms-excel');
- header('Content-Disposition: attachment;filename="'. $this->post->post_name .'.xls"');
+ header('Content-Disposition: attachment;filename="'. $filename .'.xls"');
header('Cache-Control: max-age=0');
$writer = IOFactory::createWriter($spreadsheet, 'Xls');