php实现excel单元格合并,字体加粗居中等操作

Posted 十月桂花香十里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php实现excel单元格合并,字体加粗居中等操作相关的知识,希望对你有一定的参考价值。

使用的是phpexcel,基本用的原生语法,所见即所得,直接复制下面代码,即可:

// 引用phpexcel类
            $this->load->library(\'PHPExcel\');

            // 创建对象
            $objPHPExcel = new PHPExcel();

            // 显示错误信息
            error_reporting(E_ALL);

            // Set properties
            $objPHPExcel->getProperties()->setCreator("1245049149@qq.com")
                ->setLastModifiedBy("1245049149@qq.com")
                ->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("Test result file");

            // 字体和样式
            $objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(12);      //字体大小
            $objPHPExcel->getActiveSheet()->getStyle(\'A2:D2\')->getFont()->setBold(false); //第二行是否加粗
            $objPHPExcel->getActiveSheet()->getStyle(\'A1\')->getFont()->setBold(true);      //第一行是否加粗
            $objPHPExcel->getActiveSheet()->getStyle(\'A1\')->getFont()->setSize(16);         //第一行字体大小
            $objPHPExcel->getActiveSheet()->getStyle(\'A2\')->getFont()->setSize(14);         //第二行字体大小
            $objPHPExcel->getActiveSheet()->getStyle(\'A6\')->getFont()->setSize(14);         //第六行字体大小
            $objPHPExcel->getActiveSheet()->getStyle(\'A11\')->getFont()->setSize(14);         //第十一行字体大小

            // 设置垂直居中
            $objPHPExcel->getActiveSheet()->getStyle(\'A1\')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle(\'A2:D2\')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

            // 设置水平居中
            $objPHPExcel->getActiveSheet()->getStyle(\'A1\')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle(\'A3:G5\')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle(\'A7:G10\')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle(\'A12:B15\')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

            //设置左对齐
            $objPHPExcel->getActiveSheet()->getStyle(\'A2\')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
            $objPHPExcel->getActiveSheet()->getStyle(\'A6\')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
            $objPHPExcel->getActiveSheet()->getStyle(\'A11\')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);

            // 设置行高度
            $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20); //设置默认行高
            $objPHPExcel->getActiveSheet()->getRowDimension(\'1\')->setRowHeight(30);    //第一行行高

            //设置单元格宽度
            $objPHPExcel->getActiveSheet()->getColumnDimension(\'A\')->setWidth(20);
            $objPHPExcel->getActiveSheet()->getColumnDimension(\'B\')->setWidth(20);
            $objPHPExcel->getActiveSheet()->getColumnDimension(\'C\')->setWidth(20);
            $objPHPExcel->getActiveSheet()->getColumnDimension(\'D\')->setWidth(20);
            $objPHPExcel->getActiveSheet()->getColumnDimension(\'E\')->setWidth(20);
            $objPHPExcel->getActiveSheet()->getColumnDimension(\'F\')->setWidth(20);
            $objPHPExcel->getActiveSheet()->getColumnDimension(\'G\')->setWidth(20);

            // 合并
            $objPHPExcel->getActiveSheet()->mergeCells(\'A1:G1\');
            $objPHPExcel->getActiveSheet()->mergeCells(\'A2:G2\');
            $objPHPExcel->getActiveSheet()->mergeCells(\'A6:G6\');
            $objPHPExcel->getActiveSheet()->mergeCells(\'A11:B11\');

            // 设置内容
            $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue(\'A1\', \'利润核算统计\')
                ->setCellValue(\'A2\', \'【用户充值】\')
                ->setCellValue(\'A3\', \'费率\')
                ->setCellValue(\'B3\', \'笔数    \')
                ->setCellValue(\'C3\', \'充值进账\')
                ->setCellValue(\'D3\', \'手续费\')
                ->setCellValue(\'E3\', \'利润\')
                ->setCellValue(\'A4\', \'1.0%\')
                ->setCellValue(\'B4\', $pay_log_list[\'aa\'])
                ->setCellValue(\'C4\', $pay_log_list[\'bb\'])
                ->setCellValue(\'D4\', $pay_log_list[\'cc\'])
                ->setCellValue(\'E4\', $pay_log_list[\'dd\'])
                ->setCellValue(\'A5\', \'合计\')
                ->setCellValue(\'B5\', $pay_log_list[\'ee\'])
                ->setCellValue(\'C5\', $pay_log_list[\'ff\'])
                ->setCellValue(\'D5\', $pay_log_list[\'gg\'])
                ->setCellValue(\'E5\', $pay_log_list[\'hh\'])
                ->setCellValue(\'A6\', \'【用户提现】\')
                ->setCellValue(\'A7\', \'类别\')
                ->setCellValue(\'B7\', \'笔数\')
                ->setCellValue(\'C7\', \'申请提现\')
                ->setCellValue(\'D7\', \'手续费\')
                ->setCellValue(\'E7\', \'快钱提现\')
                ->setCellValue(\'F7\', \'手续费\')
                ->setCellValue(\'G7\', \'利润\')
                ->setCellValue(\'A8\', \'收取手续费\')
                ->setCellValue(\'B8\', $withdraw_list[\'ii\'])
                ->setCellValue(\'C8\', $withdraw_list[\'kk\'])
                ->setCellValue(\'D8\', $withdraw_list[\'ll\'])
                ->setCellValue(\'E8\', $withdraw_list[\'mm\'])
                ->setCellValue(\'F8\', $withdraw_list[\'nn\'])
                ->setCellValue(\'G8\', $withdraw_list[\'oo\'])
                ->setCellValue(\'A9\', \'未收取手续费\')
                ->setCellValue(\'B9\', $withdraw_list[\'pp\'])
                ->setCellValue(\'C9\', $withdraw_list[\'qq\'])
                ->setCellValue(\'D9\', $withdraw_list[\'rr\'])
                ->setCellValue(\'E9\', $withdraw_list[\'ss\'])
                ->setCellValue(\'F9\', $withdraw_list[\'tt\'])
                ->setCellValue(\'G9\', $withdraw_list[\'ww\'])
                ->setCellValue(\'A10\', \'合计\')
                ->setCellValue(\'B10\', $withdraw_list[\'uu\'])
                ->setCellValue(\'C10\', $withdraw_list[\'vv\'])
                ->setCellValue(\'D10\', $withdraw_list[\'xx\'])
                ->setCellValue(\'E10\', $withdraw_list[\'yy\'])
                ->setCellValue(\'F10\', $withdraw_list[\'zz\'])
                ->setCellValue(\'G10\', $withdraw_list[\'aaa\'])
                ->setCellValue(\'A11\', \'【利润汇总】\')
                ->setCellValue(\'A12\', \'充值手续费收\')
                ->setCellValue(\'B12\', $all_summary[\'bbb\'])
                ->setCellValue(\'A13\', \'提现手续费支\')
                ->setCellValue(\'B13\', $all_summary[\'ccc\'])
                ->setCellValue(\'A14\', \'快钱提现手续费支\')
                ->setCellValue(\'B14\', $all_summary[\'ddd\'])
                ->setCellValue(\'A15\', \'利润\')
                ->setCellValue(\'B15\', $all_summary[\'eee\']);

            // Rename sheet
            $objPHPExcel->getActiveSheet()->setTitle(\'利润核算表\');

            // Set active sheet index to the first sheet, so Excel opens this as the first sheet
            $objPHPExcel->setActiveSheetIndex(0);

            // 设置输出
            $tableName = \'利润核算表【\'.$st.\'--\'.$et.\'】\';
            header(\'Content-Type: application/vnd.ms-excel\');
            header(\'Content-Disposition: attachment;filename="\' .$tableName. \'.xls"\');
            header(\'Cache-Control: max-age=0\');

            $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, \'Excel5\');
            $objWriter->save(\'php://output\');
            exit;

基本效果展示,视图页面样式:

下载excel后,效果展示:

end ,完美!

以上是关于php实现excel单元格合并,字体加粗居中等操作的主要内容,如果未能解决你的问题,请参考以下文章

C#/VB.NET 在Excel单元格中应用多种字体格式

poi Java生成excel合并单元格后字体居中

C# DataGrid根据某列的内容设置行字体加粗 单元格设置对齐方式

在EXCEL中,如何使用VBA设置单元格内指定字符串格式 三六零问答

POI 导出 Excel:字体颜色行列自适应锁住合并单元格一文搞定……

POI 导出 Excel:字体颜色行列自适应锁住合并单元格……