public function generate($format = "Excel5", $docName = "Tabelle") { switch ($format) { case 'Excel2007': include dirname(__FILE__) . '/../3rdParty/Classes/PHPExcel/Writer/Excel2007.php'; $writer = new PHPExcel_Writer_Excel2007($this); $ext = 'xlsx'; $header = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; //supprime le pre-calcul $writer->setPreCalculateFormulas(false); break; case 'Excel2003': include dirname(__FILE__) . '/../3rdParty/Classes/PHPExcel/Writer/Excel2007.php'; $writer = new PHPExcel_Writer_Excel2007($this); $writer->setOffice2003Compatibility(true); $ext = 'xlsx'; //supprime le pre-calcul $writer->setPreCalculateFormulas(false); break; case 'Excel5': include dirname(__FILE__) . '/../3rdParty/Classes/PHPExcel/Writer/Excel5.php'; $writer = new PHPExcel_Writer_Excel5($this); $ext = 'xls'; break; case 'CSV': include dirname(__FILE__) . '/../3rdParty/Classes/PHPExcel/Writer/CSV.php'; $writer = new PHPExcel_Writer_CSV($this); $writer->setDelimiter(","); //l'op�rateur de s�paration est la virgule $writer->setSheetIndex(0); //Une seule feuille possible $ext = 'csv'; break; case 'PDF': include dirname(__FILE__) . '/../3rdParty/Classes/PHPExcel/Writer/PDF.php'; $writer = new PHPExcel_Writer_PDF($this); $writer->setSheetIndex(0); //Une seule feuille possible $ext = 'pdf'; break; case 'HTML': include dirname(__FILE__) . '/../3rdParty/Classes/PHPExcel/Writer/HTML.php'; $writer = new PHPExcel_Writer_HTML($this); $writer->setSheetIndex(0); //Une seule feuille possible $ext = 'html'; break; } header('Content-type:' . $header); header('Content-Disposition:inline;filename=' . $docName . '.' . $ext); $writer->save('php://output'); }
/** * @Title: exports_exc * @Description: todo(导出execl或者PDF或者直接打印) * @param 导出的数据 $date * @param 导出文件模板路径 $filePath * @param 状态值 $step 1:表示答应或者导出execl 其他代表导出PDF * @param 其他指定坐标信息 $tsdate $tsdate=array('A1'=>$_POST['projectname'].$proname); * @param 打印标记 $isprint 1表示打印 * @param 审核信息数组 $auditdate * @author liminggang * @date 2014-5-5 下午5:47:53 * @throws */ public function exports_exc($date, $filePath, $step = 1, $tsdate = array(), $isprint, $auditdate = array()) { import('@.ORG.PHPExcel', '', $ext = '.php'); //创建一个PHPExcel对象 $objReader = PHPExcel_IOFactory::createReader('Excel5'); $objPHPExcel = $objReader->load($filePath); /**读取excel文件中的第一个工作表*/ $currentSheet = $objPHPExcel->getSheet(0); /**取得最大的列号*/ $allColumn = $currentSheet->getHighestColumn(); /**取得一共有多少行*/ $allRow = $currentSheet->getHighestRow(); for ($currentRow = 2; $currentRow <= $allRow; $currentRow++) { /**从第A列开始输出*/ for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) { $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65, $currentRow)->getValue(); /**ord()将字符转为十进制数*/ /**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出 * 如果存在ereg判断汉字问题。则必须用utf-8,不然不识别汉字 * */ $val = iconv('utf-8', 'utf-8', $val) . "\t"; $val = trim($val); if (isset($date[$val])) { $objPHPExcel->getActiveSheet()->setCellValue($currentColumn . $currentRow, $date[$val], ''); } } } if ($auditdate) { $coutnrow = $allRow + 1; $style = array('font' => array('name' => '黑体', 'bold' => true, 'italic' => false), 'borders' => array('bottom' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM), 'top' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM), 'left' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM), 'right' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM)), 'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER)); foreach ($auditdate as $k => $v) { for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) { $objPHPExcel->getActiveSheet()->getStyle($currentColumn . $coutnrow)->applyFromArray($style); } $objPHPExcel->getActiveSheet()->setCellValue("A" . $coutnrow, $v['name']); $objPHPExcel->getActiveSheet()->mergeCells("B" . $coutnrow . ":" . $allColumn . $coutnrow)->setCellValue("B" . $coutnrow, $v['doinfo']); $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(40); $coutnrow++; } } foreach ($tsdate as $row => $d) { $objPHPExcel->getActiveSheet()->setCellValue($row, $d); } if ($step == 1) { if ($isprint == 1) { //打印 $objExcel = new PHPExcel(); $objWriteHTML = new PHPExcel_Writer_HTML($objPHPExcel); //输出网页格式的对象 $objWriteHTML->save(UPLOAD_Sample . "tbprint.html"); echo json_encode(UPLOAD_Sample . "tbprint.html"); } else { //转execl $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); ob_end_clean(); //清除缓冲区,避免乱码 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="' . time() . '.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); } } else { $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'pdf'); //设置文件头信息 header('Content-Type: application/pdf'); header('Content-Disposition: attachment;filename="' . time() . '.pdf"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'pdf'); //设置字体 $objWriter->SetFont('arialunicid0-chinese-simplified'); $objWriter->save('php://output'); } exit; }
function generateBook($book, $format) { $this->book= $book; if (!$book->bookId) $bookName= "spreadsheet-1"; else $bookName= "spreadsheet-$book->bookId"; $filename= "default-".rand(1,9999); /*SET SPREADSHEET PROPERTIES*/ if ($format!= "ods"){ $this->objPHPExcel = new PHPExcel(); $this->objPHPExcel->getProperties()->setCreator("Maarten Balliauw"); $this->objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw"); $this->objPHPExcel->getProperties()->setTitle("Test Document"); $this->objPHPExcel->getProperties()->setSubject("Test Document"); $this->objPHPExcel->getProperties()->setDescription("Test document generated using PHP classes."); $this->objPHPExcel->getProperties()->setKeywords("office php"); $this->objPHPExcel->getProperties()->setCategory("Test result file"); } else{ $this->objPHPOds= new PHPOds(); //create a new ods file } /*GENERATE THE SHEETS*/ $this->_generateSheets($format); global $cnf; $currentDir= $cnf['path']['Temp']."/"; // Get the Storage Folder switch($format){ case "ods": saveOds($this->objPHPOds,"$filename.$format"); //save the object to a ods file break; case "pdf": $objWriter1 = new PHPExcel_Writer_PDF($this->objPHPExcel); $objWriter1->writeAllSheets(); $objWriter1->setTempDir($currentDir); $objWriter1->save("$filename.$format"); //save the object to a pdf file break; case "xls": $objWriter2 = new PHPExcel_Writer_Excel5($this->objPHPExcel); $objWriter2->setTempDir($currentDir); $objWriter2->save("$filename.$format"); //save the object to a xls file break; case "xlsx": $objWriter3 = PHPExcel_IOFactory::createWriter($this->objPHPExcel, 'Excel2007'); $objWriter3->save($currentDir."$filename.$format"); //save the object to a xlsx file break; case "csv": $objWriter4 = new PHPExcel_Writer_CSV($this->objPHPExcel); //$objWriter4->setTempDir($currentDir); $objWriter4->setDelimiter(';'); $objWriter4->setEnclosure(''); $objWriter4->setLineEnding("\r\n"); $objWriter4->save("$filename.$format"); //save the object to a CSV file break; case "html": $objWriter5 = new PHPExcel_Writer_HTML($this->objPHPExcel); $objWriter5->writeAllSheets(); //$objWriter5->setTempDir($currentDir); $objWriter5->save("$filename.$format"); //save the object to a HTML file break; } if ($format != "ods") $this->_send("$filename.$format", $format, $bookName); }