Esempio n. 1
0
 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');
 }
Esempio n. 2
0
 /**
  * @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);

		}