我想从Excel工作表中删除突出显示的列。请检查代码:
// generate report
if($genReport) {
include_once("../../../includes/dbcon/mysql-crm.php");
//01.generate first date and last day
$month_end = date('d', strtotime($toDate));
$month_first = date('d', strtotime($fromDate));
include("../../../includes/addons/php-excel-gen/PHPExcel.php");
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("Shanka Nuwan")
->setLastModifiedBy("Shanka Nuwan")
->setTitle("Call Center Report - ".$reportNamePart)
->setSubject("Call Center Report - ".$reportNamePart)
->setDescription("Call Center Report - ".$reportNamePart)
->setKeywords("Call Center Report - ".$reportNamePart)
->setCategory("Call Center");
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->mergeCells('A1:C1');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(15);
$objRichText = new PHPExcel_RichText();
$objPayable = $objRichText->createTextRun($reportNamePart);
$objPayable->getFont()->setBold(true);
$objPayable->getFont()->setSize(14);
$objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) );
$objPHPExcel->getActiveSheet()->getCell('A1')->setValue($objRichText);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A2', 'Date');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A3', 'SHOWROOM');
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
$objPHPExcel->getDefaultStyle()->getFont()->setSize(10);
//add allboder style
$BStyle = array(
'borders' => array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN
)
)
);
$objPHPExcel->getActiveSheet()->getStyle('A2:BI105')->applyFromArray($BStyle);
$row = 4;
// generate report column
$column = 'B';
$column2 = 'C';
$x = $month_first;
for(;$x<=$month_end;) {
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($column2.'3', 'Enquiry');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($column2.'2', $x);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setVisible(false);
$x++;
if($x<=$month_end) {
$column2++;
$column = $column2;
$column2++;
}
}
// add total column after dates
$column2++;
$column = $column2;
$column2++;
//$objPHPExcel->getActiveSheet()->mergeCells($column.'2:'.$column2.'2');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A105', 'Total');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($column2.'3', 'Enquiries Total');
/*
$styleArray = array(
'font' => array(
'bold' => true,
'color' => array('rgb' => 'FF0000'),
'size' => 15,
'name' => 'Verdana'
));
*/
$styleArray = array('font' => array('color' => array('rgb' => 'FF0000')));
//$objPHPExcel->getActiveSheet()->getStyle($column.'2')->applyFromArray($styleArray);
//$objPHPExcel->getActiveSheet()->getStyle($column.'3')->applyFromArray($styleArray);
$objPHPExcel->getActiveSheet()->getStyle($column2.'3')->applyFromArray($styleArray);
//report name letter style
$objPHPExcel->getDefaultStyle()->getFont()->setSize(11);
$objPHPExcel->getActiveSheet()->getStyle('A2:'.$column2.'2')->getFont()->setBold(true);
$style = array(
'alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
)
);
//align report headers
$objPHPExcel->getActiveSheet()->getStyle('A2:'.$column2.'2')->applyFromArray($style);
$objPHPExcel->getActiveSheet()->getStyle('A3:'.$column2.'3')->applyFromArray($style);
//load location
$get_sql ="SELECT
showrooms.showroom_id,
showrooms.showroom_code,
showrooms.showroom_name,
showrooms.showroom_address,
showrooms.address_city,
showrooms.manager_name,
showrooms.manager_mobile,
showrooms.manager_id,
showrooms.shop_email,
showrooms.shop_phone,
showrooms.shop_fax,
showrooms.showroom_type,
showrooms.added_date,
showrooms.last_update,
showrooms.added_by,
showrooms.status_id
FROM
showrooms
INNER JOIN showroom_type ON showrooms.showroom_type = showroom_type.showroom_type_id
WHERE showrooms.showroom_id > '0' and
showrooms.showroom_type = '1' AND
showrooms.status_id = '1'
ORDER BY
showrooms.showroom_name ASC";
$get_showroom = $db->get_results($get_sql);
if($db->num_rows>0){
$row = 4;
foreach($get_showroom as $row_showroom){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row , $row_showroom->showroom_name);
//get showroom id
$showroom_email= explode('@',$row_showroom->shop_email);
$showroom_id = $showroom_email[0];
//check showroom already intract with showroom task
$sso_user = $db->get_row("SELECT users.user_id FROM users WHERE users.login_name = '".$showroom_id."'");
$total_inqury = 0;
if($db->num_rows == 1){
$user_id = $sso_user->user_id;
//date check
$column = 'B';
$column2 = 'C';
$day = $month_first;
for(;$day<=$month_end;){
$byear = date('Y',strtotime($fromDate));
$month = date('m',strtotime($fromDate));
$check_date = strtotime($byear.'-'.$month.'-'.$day);
$user_login = $db->get_row("SELECT
Count(sys_id) AS locount
FROM
sys_user_login
WHERE
user_id = '".$user_id."'
AND log_date = '".date('Y-m-d',$check_date)."'");//$db->debug();
if($db->num_rows == 1){
if($user_login->locount > 0){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($column.$row , '');
$styleArray = array('font' => array('color' => array('rgb' => 'FF0000')));
$objPHPExcel->getActiveSheet()->getStyle($column.$row)->applyFromArray($styleArray);
//$total_login++;
//back groud color for cell
$objPHPExcel->getActiveSheet()->getStyle($column2.$row)->applyFromArray(
array(
'fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => array('rgb' => 'FFFF00')
)
)
);
}else{
//$objPHPExcel->setActiveSheetIndex(0)->setCellValue($column.$row , '');
}
}else{
//$objPHPExcel->setActiveSheetIndex(0)->setCellValue($column.$row , '');
}
//count inquery
$inquery_day = $dbCrm->get_row("SELECT
Count(customers.cu_id) AS inq_day
FROM
customers
WHERE
customers.added_by = '".$user_id."' AND
customers.added_date LIKE '".date('Y-m-d',$check_date)."%'");//$db->debug();
if($dbCrm->num_rows == 1){
if($inquery_day->inq_day > 0){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($column2.$row ,$inquery_day->inq_day);
$total_inqury += $inquery_day->inq_day;
}else{
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($column2.$row , '0');
}
}else{
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($column2.$row , '0');
}
$day++;
if($day<=$month_end){
$column2++;
$column = $column2;
$column2++;
}
}
$column2++;
$column = $column2;
$column2++;
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($column2.$row, $total_inqury);
$objPHPExcel->getActiveSheet()
->setCellValue(
'C105',
'=SUM(A10:E9)'
);
$styleArray = array('font' => array('color' => array('rgb' => 'FF0000')));
$objPHPExcel->getActiveSheet()->getStyle($column2.$row)->applyFromArray($styleArray);
$total_inqury = 0;
}
$row++;
}
}
//genarate report data
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="showroom-task-report-'.$byear.'-'.strtolower(date('F', mktime(0, 0, 0, $month, 10))).'.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
}
?>
以下excel out将从上面的编码生成。我花了很多时间来弄清楚如何驾驭它。仍然无法找到解决方案。
答案 0 :(得分:5)
您使用Worksheet对象的removeColumn()
或removeColumnByIndex()
方法。
removeColumn()
按名称接受列ID(例如D
,F
,L
)。
removeColumnByIndex()
按索引号(例如3,6,12)