X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=GnumericToExcel.php;h=ce965f75dc6ab391c77b8f09d7480a74f1b7d21d;hb=01331ec9ece5b15d610bc989d7823f39eeb1990d;hp=5b6e47148eb2f5a2ce22e847107a84bfb4831527;hpb=a2456e05971e2e1d8ed90cf2982efa7e71a27d44;p=Pman.Core diff --git a/GnumericToExcel.php b/GnumericToExcel.php index 5b6e4714..ce965f75 100644 --- a/GnumericToExcel.php +++ b/GnumericToExcel.php @@ -55,7 +55,7 @@ class Pman_Core_GnumericToExcel extends Pman //$this->addEvent("DOWNLOAD", false, isset($_REQUEST['title']) ? $_REQUEST['title'] : '???'); - if (!empty($_POST['format']) && $_POST['format']=='gnumeric') { + if (!empty($_POST['format']) && $_POST['format']=='gnumeric') { if (empty($_POST['debug'])) { header('Content-type: application/x-gnumeric'); header('Content-Disposition: attachment; filename="' .addslashes($fname). '.gnumeric"'); @@ -65,6 +65,18 @@ class Pman_Core_GnumericToExcel extends Pman echo $xml; exit; } + + $ext = '.xls'; + $outfmt = 'Gnumeric_Excel:excel_biff8'; + $mime = 'application/vnd.ms-excel'; + if (!empty($_POST['format']) && $_POST['format']=='xlsx') { + $outfmt = 'Gnumeric_Excel:xlsx'; + $ext = '.xlsx'; + $mime = 'aapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + } + + + $srcTmp = ini_get('session.save_path') . '/' .uniqid('gnumeric_').'.gnumeric'; $targetTmp = ini_get('session.save_path') . '/' .uniqid('gnumeric_').'.xls'; // write the gnumeric file... @@ -74,10 +86,12 @@ class Pman_Core_GnumericToExcel extends Pman require_once 'System.php'; + $xvfb = System::which('xvfb-run'); + $ss = System::which('ssconvert'); - $cmd = $ss. + $cmd = $xvfb . " -a " . $ss. " --import-encoding=Gnumeric_XmlIO:sax" . - " --export-type=Gnumeric_Excel:excel_biff8 " . + " --export-type={$outfmt} " . $srcTmp . ' ' . $targetTmp . ' 2>&1'; // echo $cmd; //passthru($cmd);exit; @@ -95,7 +109,7 @@ class Pman_Core_GnumericToExcel extends Pman } $fname .= preg_match('/\.xls/i', $fname) ? '' : '.xls'; // make sure it ends in xls.. - header('Content-type: application/vnd.ms-excel'); + header('Content-type: ' . $mime); header('Content-Disposition: attachment; filename="' .addslashes($fname). '"'); header('Content-length: '. filesize($targetTmp)); header("Content-Transfer-Encoding: binary");