0
任何人都可以幫助我如何限制循環如果變量$name
是空的,即使其他人不在該數組中,它也不會顯示在Excel生成的報告中。如何限制phpexcel中的循環
我想要做的是如果在該循環中的特定數組變量$name
是空的,即使其他變量不是他們不會包括在生成的Excel報告....任何人都可以知道如何做到這一點?請幫幫我。
當前代碼:
<?php
if(isset($_POST['send'])){
include('connection.php');
require_once 'Classes\PHPExcel\IOFactory.php';
$filename = 'qualification_standards.xlsx';
$repcode = $_POST['repcode'];
$position = $_POST['t_position'];
$town = $_POST['t_town'];
$title = 'Qualification-Standards'.'_'.$repcode.'_'.$position.'_'.$town;
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($filename);
$objWorksheet = $objPHPExcel->getActiveSheet();
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
$result = array();
for ($n = 1; $n <=15; $n++)
{
$no = 0+$n;
$aic = isset($_POST['aic'.$n]) ? $_POST['aic'.$n] : "";
$repcode = isset($_POST['repcode']) ? $_POST['repcode'] : "";
$name = isset($_POST['name'.$n]) ? $_POST['name'.$n] : "";
$optA = isset($_POST['optA'.$n]) ? $_POST['optA'.$n] : "";
$optB = isset($_POST['optB'.$n]) ? $_POST['optB'.$n] : "";
$optC = isset($_POST['optC'.$n]) ? $_POST['optC'.$n] : "";
$optD = isset($_POST['optD'.$n]) ? $_POST['optD'.$n] : "";
$total = isset($_POST['total'.$n]) ? $_POST['total'.$n] : "";
$result[] = array(
$no,
"PRO13325-".$aic,
$repcode,
$name,
$optA,
$optB,
$optC,
$optD,
$total
);
}
$headings = array(array('QUALIFICATION STANDARDS'),array(
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL), array(
'No.',
'AIC',
'RepCode',
'Name of Candidates',
'Educational Attainment',
'Experience',
'In-Service Trainings & Seminars Attended',
'Eligibility',
'Total'
)
);
$fone = "___________________________";
$ftwo = "Signature of Rater";
$footer = array(array($fone),array($ftwo));
$points = array(
' ',
' ',
' ',
' ',
'(20 pts)',
'(20 pts)',
'(20 pts)',
'(20 pts)',
'(80 pts)'
);
$styleArray = array(
'borders' => array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN
)
)
);
$objPHPExcel->getActiveSheet()->getStyle('A3:I19')->applyFromArray($styleArray);
unset($styleArray);
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setAutoSize(true);
$objPHPExcel->getActiveSheet()
->getStyle('A1:I21')
->getAlignment()
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()
->getStyle('D5:D19')
->getAlignment()
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
$objPHPExcel->getActiveSheet()->getStyle('A1:I1')->getFont()->setSize(22);
$objPHPExcel->getActiveSheet()->mergeCells('A1:I2');
$objPHPExcel->getActiveSheet()->getStyle('A20:I20')->getFont()->setSize(17);
$objPHPExcel->getActiveSheet()->getStyle('A21:I21')->getFont()->setSize(13);
$objPHPExcel->getActiveSheet()->mergeCells('A20:I20');
$objPHPExcel->getActiveSheet()->mergeCells('A21:I21');
$objPHPExcel->getActiveSheet()->getStyle('B5:B19')->getNumberFormat()->setFormatCode('0000');
$objPHPExcel->getActiveSheet()->getStyle('A3:I3')->applyFromArray(
array(
'font' => array(
'bold' => true
),
'alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
),
'borders' => array(
'top' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN
)
),
'fill' => array(
'type' => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
'rotation' => 90,
'startcolor' => array(
'argb' => 'FFA0A0A0'
),
'endcolor' => array(
'argb' => 'FFFFFFFF'
)
)
)
);
$objPHPExcel->getActiveSheet()->fromArray($headings, null, 'A1');
$objPHPExcel->getActiveSheet()->fromArray($footer, null, 'A20');
$objPHPExcel->getActiveSheet()->fromArray($points, null, 'A4');
$row = 5;
foreach($result as $rows){
if (!empty($rows[4])) {
$objPHPExcel->getActiveSheet()->fromArray($rows, null, 'A' . $row);
$row++;
}
}
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header(sprintf('Content-Disposition: attachment;filename="%s.xlsx"',preg_replace('/\\r\\n?|\\n/', '', $title)));
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
}?>
謝謝老兄,它的工作:d – user3340637