如何在phpexcel中设置普通表标题

RK.*_*RK. 2 php codeigniter phpexcel

我正在尝试打印里面有多张纸的excel表.除了表格标题外,一切正常.我已经设置了工作表标题,因此它正在进行中.但是,对于给定的表格标题,额外的数字也会出现,这会造成混乱.我相信,这是表索引号或其他东西,但无法删除它.这是我的代码:

$y=0;
for ($w=1; $w<3; $w++) :
            $sheetId =$y;
            $objPHPExcel->createSheet(NULL, $sheetId);
            $objPHPExcel->setActiveSheetIndex($sheetId);
            $objPHPExcel->getActiveSheet()->setTitle("Week ".$w);
            $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12);
            $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(12);
            $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(14);
            $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
            $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(16);
            $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(12);
            $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(15);
            $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(10);
            $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(17.5);

            $objPHPExcel->setActiveSheetIndex($sheetId)->mergeCells('A1:J6');
            $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setWrapText(true);
            $objPHPExcel->getActiveSheet()->getStyle("A1")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle('A1:J5')->applyFromArray($styleArray);
            $objPHPExcel->getActiveSheet()->getStyle('A:E')->applyFromArray($centreAlign);
endfor;
Run Code Online (Sandbox Code Playgroud)

输出:

第一周1和第2周是正确的,但在其他情况下,额外的数字即将到来,这是不可取的.

任何帮助将受到高度赞赏.

mar*_*sma 8

好像你正在执行两次发布的代码.这将创建两组同名的工作表(第1周,第2周,第1周,第2周),Excel不喜欢这些工作表.它会自动为重复的标题添加"1".

这不是你的代码添加1,它是Excel.

所以你需要维护全局周迭代器,所以它变成第1周,第2周,第3周,第4周:

// you may need to do global $week if this code runs in a function
if ( ! isset( $week ) )
  $week = 0;
for ($w=1; $w<3; $w++) :
  // ...
  $week += $w;
  $objPHPExcel->getActiveSheet()->setTitle("Week ".$week);
  // ...
endfor;
Run Code Online (Sandbox Code Playgroud)

或者您需要为自己实现一些其他工作表命名方案.