ThinkPHP中调用PHPExcel的实现代码

5年以前  |  阅读数:964 次  |  编程语言:PHP 

核心代码:


    //引入PHPExcel
    vendor('PHPExcel.PHPExcel');

    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();

    //设置文档属性
    $objPHPExcel->getProperties()
        ->setCreator("web100.cc")
        ->setLastModifiedBy("web100.cc")
        ->setTitle("Office 2007 XLSX Test Document")
        ->setSubject("Office 2007 XLSX Test Document")
        ->setDescription("Test document generated using PHP classes.")
        ->setKeywords("office 2007 openxml php")
        ->setCategory("Test result file");

    //设置当前活动的sheet
    $objPHPExcel->setActiveSheetIndex(0);

    //选定当前Sheet
    $objActSheet = $objPHPExcel->11getActiveSheet();

    //设置sheet名字
    $objActSheet->setTitle('phpexcel demo');

    //设置默认行高
    $objActSheet->getDefaultRowDimension()->setRowHeight(15);

    //由PHPExcel根据传入内容自动判断单元格内容类型
    $objActSheet->setCellValue('A1', "Firstname");
    $objActSheet->setCellValue('B1', "Lastname");
    $objActSheet->setCellValue('C1', "Phone");
    $objActSheet->setCellValue('D1', "Fax");
    $objActSheet->setCellValue('E1', "Address");
    $objActSheet->setCellValue('F1', "ZIP");
    $objActSheet->setCellValue('G1', "DATE");


    $objActSheet->setCellValueByColumnAndRow(0, 8, 'firstname');
    $objActSheet->setCellValueByColumnAndRow(1, 8, 'lastname');


    // 单元格填充值
    $objActSheet->setCellValue('A2', "小风");
    $objActSheet->setCellValue('B2', "wang");

    //设置列宽
    $objActSheet->getColumnDimension('C')->setWidth('20');


    // 设置行高
    $objActSheet->getRowDimension('9')->setRowHeight(20); //第9行

    // 设置字体
    $objActSheet->getStyle('A1')->getFont()->setName('宋体');
    // 字号
    $objActSheet->getStyle('A1')->getFont()->setSize(12);
    // 加粗
    $objActSheet->getStyle('A1')->getFont()->setBold(true);

    //说明:$objActSheet->getStyle('A1:G10'),可以通过这种方式来选择一片单元格!

    // 设置单元格格式
    $objActSheet->getCell('C2')->setValueExplicit('861391327543258', PHPExcel_Cell_DataType::TYPE_NUMERIC);

    // 日期
    $objActSheet->setCellValue('G2', '2008-12-31');
    $objActSheet->getStyle('G2')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH);

    // 时间戳
    $time = gmmktime(0,0,0,12,31,2008); // int(1230681600)
    $objActSheet->setCellValue('G3', PHPExcel_Shared_Date::PHPToExcel($time));
    $objActSheet->getStyle('G3')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH);

    // url
    $objActSheet->setCellValue('G11', 'www.spalybow.com');
    $objActSheet->getCell('G11')->getHyperlink()->setUrl('http://www.spalybow.com');

    // 另一个sheet
    $objActSheet->setCellValue('G12', 'sheetb');
    $objActSheet->getCell('G12')->getHyperlink()->setUrl("sheet://'sheetb'!A1");

    // 水平居上
    $objActSheet->getStyle('A9:B9')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);

    // 单元格换行
    $objActSheet->getStyle('G2:G3')->getAlignment()->setWrapText(true);

    // 合并
    $objActSheet->mergeCells('A18:E22');


    // 隐藏D列
    $objActSheet->getColumnDimension('D')->setVisible(false);

    //
    $objActSheet->getColumnDimension('E')->setOutlineLevel(1);
    $objActSheet->getColumnDimension('E')->setVisible(false);
    $objActSheet->getColumnDimension('F')->setOutlineLevel(1);
    $objActSheet->getColumnDimension('F')->setVisible(false);
    $objActSheet->getColumnDimension('F')->setCollapsed(true);

    // 固定第一行
    $objActSheet->freezePane('A2');

    // 保护工作表
    $objActSheet->getProtection()->setPassword('PHPExcel');
    $objActSheet->getProtection()->setSheet(true);
    $objActSheet->getProtection()->setSort(true);
    $objActSheet->getProtection()->setInsertRows(true);
    $objActSheet->getProtection()->setFormatCells(true);

    //设置边框
    $sharedStyle1 = new PHPExcel_Style();
    $sharedStyle1->applyFromArray(
      array('borders' => array(
                    'left'    => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM)
                  )
         ));
    $objActSheet->setSharedStyle($sharedStyle1, "B1:B10");

    // 创建一个新的工作表
    $objWorksheet1 = $objPHPExcel->createSheet();
    $objWorksheet1->setTitle('sheetb');


    $objPHPExcel->setActiveSheetIndex(1);


    // 创建一个图片
    $gdImage = @imagecreatetruecolor(200, 20) or die('Cannot Initialize new GD image stream');
    $textColor = imagecolorallocate($gdImage, 255, 255, 255);
    imagestring($gdImage, 1, 5, 5, 'Created with PHPExcel (c1gstudio.com)', $textColor);

    // 把创建的图片添加到工作表
    $objDrawing = new PHPExcel_Worksheet_MemoryDrawing();
    $objDrawing->setName('Sample image');
    $objDrawing->setDescription('Sample image');
    $objDrawing->setImageResource($gdImage);
    $objDrawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG);
    $objDrawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT);
    $objDrawing->setHeight(36);
    $objDrawing->setWorksheet($objActSheet);

    $objPHPExcel->setActiveSheetIndex(0);

    // 保存
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('testexcel'.time().'.xls');
 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例