• ThinkPHP中调用PHPExcel


    //引入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');
     
    //由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行,如果setRowHeight(-1),表示自适应
     
    //设置默认行高
    $objActSheet->getDefaultRowDimension()->setRowHeight(15);
     
    // 设置自动换行
    $objActSheet->getStyle('A4')->getAlignment()->setWrapText(true);  
    
    // 设置字体
    $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');
    
     

    来源:http://www.splaybow.com/post/thinkphp-phpexcel-121.html

  • 相关阅读:
    线程安全的简单理解
    单链表 之 判断两链表是否交叉
    React组件间的通信
    input type=file美化
    Array.prototype.slice.call(arguments)
    ES5 数组方法every和some
    nodejs学习之表单提交(1)
    ES5 数组方法reduce
    ES5 数组方法map
    ES5 数组方法forEach
  • 原文地址:https://www.cnblogs.com/wuheng1991/p/6817586.html
Copyright © 2020-2023  润新知