• PHP生成excel文件(包含格式等基本内容)


    需先引入PHP文件
    include_once(ROOT_PATH . '/Public/excel/PHPExcel.php');
    $objPHPExcel = new PHPExcel();
    $objPHPExcel->getProperties()->setCreator($msprojectinfo['projectname'].'_数据导入模板')
    ->setLastModifiedBy("数据导入模板")
    ->setTitle("Office 2007 XLSX Test Document")
    ->setSubject("Office 2007 XLSX Test Document")
    ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
    ->setKeywords("office 2007 openxml php")
    ->setCategory("数据导入模板");
    $worksheet = $objPHPExcel->getActiveSheet();
    // 默认格式
    $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(24);//默认行高
    $objPHPExcel->getActiveSheet()->getDefaultColumnDimension()->setWidth(12);//默认宽度
    $objPHPExcel->getDefaultStyle()->getFont()->setSize(10.5);//默认字体大小

    $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//水平居中
    $objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);//垂直居中

    $objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);//第一行加粗
    $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(14);//第一行字体大小
    $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);//第一行字体加粗

    $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(32); //第一行高度
    $objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(28); //第二行高度
    $objPHPExcel->getActiveSheet()->getRowDimension('3')->setRowHeight(28); //第三行高度
    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(9);//第一列宽度

    $colArr = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","AA","AB","AC");

    //第一行合并
    $objPHPExcel->getActiveSheet()->mergeCells('A1:'.$colArr[$lienum-1].'1');
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $msprojectinfo['projectname'].'_数据导入模板');

    $objPHPExcel->getActiveSheet()->mergeCells('A2:A3');
    $objPHPExcel->getActiveSheet()->mergeCells('B2:B3');
    $objPHPExcel->getActiveSheet()->mergeCells('C2:C3');
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A2', '姓名');
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B2', '考场');
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C2', '面试');
    $lie2 = count($normandcnorm)+2;//中间的合并
    $objPHPExcel->getActiveSheet()->mergeCells('D2:'.$colArr[$lie2].'2');
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D2', '分数');

    $lie = 2;
    if (is_array($normandcnorm)){
    foreach ($normandcnorm as $nk=>$nv){
    $lie++;
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colArr[$lie].'3', $nv);
    }
    }

    $lie++;
    $objPHPExcel->getActiveSheet()->mergeCells($colArr[$lie].'2:'.$colArr[$lie].'3');
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colArr[$lie].'2', '评语');

    $objPHPExcel->getActiveSheet()->getStyle('A2:'.$colArr[$lie].'3')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
    $objPHPExcel->getActiveSheet()->getStyle('A2:'.$colArr[$lie].'3')->getFill()->getStartColor()->setARGB('FFe6fffb');
    $objPHPExcel->getActiveSheet()->getStyle('A2:'.$colArr[$lie].'3')->getFont()->setBold(true);//加粗
    $objPHPExcel->getActiveSheet()->getStyle('A2:'.$colArr[$lie].'3')->getFont()->setSize(10.5);

    $num=3;
    if (is_array($mspersonlist)){
    foreach ($mspersonlist as $k2=>$v2){
    if (is_array($mwidandmsg[$v2['mwid']])){
    foreach ($mwidandmsg[$v2['mwid']] as $k3=>$v3){
    $num++;
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$num, $v2['name']);
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$num, $msworkandname[$v2['mwid']]);
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$num, $interviewerlist[$v3]);
    }
    }
    }
    }

    $objPHPExcel->getActiveSheet()->getStyle('A4:'.$colArr[$lienum-1].$num)->getFont()->setSize(9);

    $style_array = array(
    'borders' => array(
    'allborders' => array( //设置全部边框
    'style' => PHPExcel_Style_Border::BORDER_THIN //粗的是thick
    ),

    ),
    );
    $objPHPExcel->getActiveSheet()->getStyle('A1:'.$colArr[$lienum-1].$num)->getAlignment()->setWrapText(true);
    $objPHPExcel->getActiveSheet()->getStyle('A1:'.$colArr[$lienum-1].$num)->applyFromArray($style_array);

    ob_end_clean();
    ob_start();

    $objPHPExcel->getActiveSheet()->setTitle($msprojectinfo['projectname'].'_数据导入模板');
    $objPHPExcel->setActiveSheetIndex(0);

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="'.$msprojectinfo['projectname'].'_数据导入模板.xls"');
    header('Cache-Control: max-age=0');
    $objWriter->save('php://output');
  • 相关阅读:

    队列
    数据结构简介
    标准模板库
    类模板
    函数模板
    srvctl error
    FLASH BACK
    RAC 设置archive log模式
    CHAPTER 1 Architectural Overview of Oracle Database 11g
  • 原文地址:https://www.cnblogs.com/chouxiao/p/14984576.html
Copyright © 2020-2023  润新知