shish 4 gadi atpakaļ
vecāks
revīzija
b754393613
1 mainītis faili ar 28 papildinājumiem un 20 dzēšanām
  1. 28 20
      app-ghs/controllers/CsController.php

+ 28 - 20
app-ghs/controllers/CsController.php

@@ -65,7 +65,7 @@ class CsController extends PublicController
         $formatData = [];
 
         foreach ($data as $key => $class) {
-            $name = "【{$class['className']}】" ?? '';
+            $name = $class['className'] ?? '';
             $formatData[] = ['name' => $name, 'price' => ''];
             if (isset($class['child']) && !empty($class['child'])) {
                 foreach ($class['child'] as $cKey => $child) {
@@ -79,7 +79,6 @@ class CsController extends PublicController
             }
         }
 
-
         $phpExcelFile = Yii::getAlias("@vendor/phpoffice/phpexcel/");
         require_once($phpExcelFile . 'Classes/PHPExcel.php');
 
@@ -93,36 +92,45 @@ class CsController extends PublicController
             ->setKeywords("office 2007 openxml php")
             ->setCategory("Test result file");
 
-        $i = 1;
-        foreach ($formatData as $key => $product) {
-
-
-//            $objPHPExcel->setActiveSheetIndex(0)//表头的信息
-//            ->setCellValue('A1', "编号")
-//                ->setCellValue('B1', "所属上级")
-//                ->setCellValue('C1', "路由名称")
-//                ->setCellValue('D1', "菜单标题")
-//                ->setCellValue('E1', "状态");
-//            $i = 2;
 
+        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12);
+        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(4);
 
+        $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader(date('n月j日')." 价格表");
 
+        $objPHPExcel->getActiveSheet()->getPageMargins()->setTop(0.4);
+        $objPHPExcel->getActiveSheet()->getPageMargins()->setBottom(0);
+        $objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0);
+        $objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0);
+        $objPHPExcel->getActiveSheet()->getPageMargins()->setHeader(0.1);
+        $objPHPExcel->getActiveSheet()->getPageMargins()->setFooter(0);
 
+        //设置边框
+        $objPHPExcel->getActiveSheet()->getStyle('A1:B212')->applyFromArray(array('borders' => array('allborders' => array('style' => \PHPExcel_Style_Border::BORDER_THIN),)));
 
-            $objPHPExcel->getActiveSheet()//     设置第一个内置表(一个xls文件里可以有多个表)为活动的
-            ->setCellValue('A' . $i, $product['name'])//给表的单元格设置数据
-            ->setCellValue('B' . $i, $product['price']);//数据格式可以为字符串
+        $i = 1;
+        foreach ($formatData as $key => $product) {
+            if(isset($product['price']) == false || empty($product['price'])){
+                //没有价格的合并单元格
+                $objPHPExcel->getActiveSheet()->mergeCells("A{$i}:B{$i}")->setCellValue('A' . $i, $product['name']);
+                //加粗
+                $objPHPExcel->getActiveSheet()->getStyle('A' . $i)->getFont()->setBold(true);
+                //居中
+                $objPHPExcel->getActiveSheet()->getStyle('A' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
+            }else{
+                $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $product['name'])->setCellValue('B' . $i, $product['price']);
+            }
             $i++;
-
-
         }
 
-        $objPHPExcel->getActiveSheet()->setTitle('Simple');
+        $objPHPExcel->getActiveSheet()->setTitle('价格表');
 
         $objPHPExcel->setActiveSheetIndex(0);
 
+        $date = date('n月j日');
+
         header('Content-Type: application/vnd.ms-excel');
-        header('Content-Disposition: attachment;filename="01simple.xls"');
+        header('Content-Disposition: attachment;filename="'.$date.'.xls"');
         header('Cache-Control: max-age=0');
 
         header('Cache-Control: max-age=1');