美文网首页
php之自定义excel表格

php之自定义excel表格

作者: 一梦三四年lyp | 来源:发表于2018-02-01 12:05 被阅读0次

一,开发过程中遇到了要用自定义excel表格,记录如下
里面对用的sql对相应的调整即可

方法:

    public function downLoadFile()
    {
        import('Vendor.PHPExcel');
        $phpExcel = new \PHPExcel();
        $phpExcel->getDefaultStyle()->getFont()->setName('宋体');
        $phpExcel->getDefaultStyle()->getFont()->setSize(11);
        $phpExcel->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $phpExcel->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);


        $workSheet = $phpExcel->getActiveSheet();
        $workSheet->getColumnDimension('A')->setWidth(8.38);
        $workSheet->getColumnDimension('B')->setWidth(16.88);
        $workSheet->getColumnDimension('C')->setWidth(11.88);
        //合并单元格A1到AH1
        $workSheet->mergeCells('A1:C1');

        //设置边框
        $workSheet->getStyle('A1:C15')->getBorders()->getAllBorders()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);

        //设置行高为42
        $workSheet->getRowDimension(1)->setRowHeight(42);
        //在第一行写入'用户排班表'

        $workSheet->setCellValue('A1', '技能导入表');

        //设置样式
        $workSheet->getStyle('A1')->getFont()->setSize(18);
        $workSheet->getStyle('A1')->getFont()->setBold(true);

        $workSheet->setCellValue('A2', '序号');
        $workSheet->setCellValue('B2', '部门名称');
        $workSheet->setCellValue('C2', '技能 ');
        //插入数据 B列为部门
        $departStr = '';
        $departArr =  M('user_organize')->where(array('level'=>6,'is_del'=>0))->group('judgecode')
            ->order('sort_num desc')->select();
        foreach ($departArr as $ke => $va) {
            $departStr .= $va['name'] . ',';
            $departIds[] = $ke;
        }
        $departStr = rtrim($departStr, ',');
        for($i = 3; $i <= 15; $i++) {
            $objValidation = $workSheet->getCell('B' . $i)->getDataValidation();
            $objValidation->setType( \PHPExcel_Cell_DataValidation::TYPE_LIST );
            $objValidation->setErrorStyle( \PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
            $objValidation->setAllowBlank(false);
            $objValidation->setShowInputMessage(true);
            $objValidation->setShowErrorMessage(true);
            $objValidation->setShowDropDown(true);
            $objValidation->setErrorTitle('输入错误');
            $objValidation->setError('此值不在下拉列表中。');
            $objValidation->setPromptTitle('请从列表中选择');
            $objValidation->setPrompt('请从单元格下拉列表中选择一个值。');
            $objValidation->setFormula1('"' . $departStr . '"');  // Make sure to put the list items between " and "  !!!
            $workSheet->getCell('B' . $i)->setDataValidation($objValidation);
        }

        //合并单元格A35-AH42
        $workSheet->mergeCells('A12:C15');
        //设置A35的文字对齐格式
        $workSheet->getStyle('A12')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
        $workSheet->getStyle('A12')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_TOP);

        //让单元格内换行符起作用
        $workSheet->getStyle('A12')->getAlignment()->setWrapText(true);
        //定界符结束
        $introduce = <<<EOF
//1、为保证导入数据成功,序号,部门名称和技能必填且要保证正确性哦!(重要)\n 2、同一部门的多个技能用英文符号(,)隔开,技能名不能重复并且当个技能名称不能大于20个字!\n
EOF;
        $workSheet->setCellValue('A12', $introduce);

        $result = \PHPExcel_IOFactory::createWriter($phpExcel, 'Excel2007');
        //返回的对象太大,通过网络传输会有丢失信息情况,所以序列化
        return serialize($result);
    }

调用:

    /*
     * 下载样式
     * */
    public function downLoadFile()
    {
        import('Vendor.PHPExcel');
        $RpcClient  = RpcClient::getInstance();
        $result     = $RpcClient->sendRequest('/User/WorkSkill', 'downLoadFile', []);
        header('Content-Type: application/vnd.ms-excel');
        header("Content-Disposition: attachment;filename=1.xlsx");
        header('Cache-Control: max-age=0');
        $result1 = unserialize($result);
        $result1->save('php://output');
    }

相关文章

  • php之自定义excel表格

    一,开发过程中遇到了要用自定义excel表格,记录如下里面对用的sql对相应的调整即可

  • office2010使用小记(1)

    excel表格添加滚动条 打开excel,文件-->选项-->自定义功能区-->勾选开发工具-->excel工具栏...

  • PHP之Excel表格之导入数据

    说明:由于项目需要,今天用Ajax+PHPExcel进行文件下载(后台获取数据,将数据生成Excel表格,最后通过...

  • PHP之Excel表格之导出数据

    说明:由于项目需要,需要“获取Excel表格的内容”,用于插入mysql数据表。 分为以下两种情况【我们项目是第二...

  • PHP输出excel表格

    使用的phpoffice进行表格的输出 安装:https://phpspreadsheet.readthedocs...

  • php导出Excel表格

    把结果集丢入exect()就完事了 public function exect($dataResult){// $...

  • PHP中一些函数方法

    php自定义函数之递归函数 php自定义函数之静态变量 php​ 使用系统内置函数 亚麻跌”是PHP学习时间处理的...

  • php处理excel过长表格

    问题背景: 需要用php生成一个三百多列的excel表格,已给出表格模板。 处理步骤: 把表格的列表头导出成txt...

  • 图文详解Excel排序功能,让你轻松掌握该技巧!

    Excel中的排序共分“升序”、“降序”和“自定义排序”三种功能。 Excel表格如何进行自动排序,操作步骤如下图...

  • php读取excel文件数据的导入和导出

    在之前有写过一篇文章讲述了使用PHP快速生成excel表格文件并下载,这种方式生成Excel文件,生成速度很快,但...

网友评论

      本文标题:php之自定义excel表格

      本文链接:https://www.haomeiwen.com/subject/tuhdzxtx.html