PHPExcel

require_once '/PHPExcel/PHPExcel.php';

$excel_filePath​ = '/模板.xls';

$excel_filePath = iconv('UTF-8', 'GBK//IGNORE', $excel_filePath);​//转换中文字符

$objPHPExcel = new PHPExcel();

$excelType = PHPExcel_IOFactory::identify($excel_filePath);//获取excel版本

$objReader = PHPExcel_IOFactory::createReader($excelType);//以$excelType版本读取文件

$objPHPExcel = $objReader->load($excel_filePath); //加载excel文件

$objPHPExcel->getSheetCount();//获取工作表数量

$sheet = $objPHPExcel->getSheet(0);//读取第一个工作表

$highestRow = $sheet->getHighestRow(); // 取得总行数  

$highestColumm = $sheet->getHighestColumn(); // 取得总列数

//设置文档基本属性    

$objPHPExcel->getProperties()->setCreator('aaa')//创建人

       ->setLastModifiedBy('bbb')//最后修改人

       ->setTitle('cccc')//标题

       ->setSubject('dddd')//题目

       ->setDescription('eeee')//描述

       ->setKeywords('ffff')//关键字

       ->setCategory('ggggg');//种类

//设置单元格的值

​$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', 'String');

​$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A2', 12);

​$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A3', true);

​$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C5', '=SUM(C2:C4)');

​$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B8', '=MIN(B2:C5)');​

​//设置宽width

​$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);

​$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);

//设置居中​

​$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()

   ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER)//左右居中

   ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);//上下居中

//设置自动换行

$objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()

   ->setWrapText(true)​;

//合并单元格

$objPHPExcel->getActiveSheet()->mergeCells('A1:D1');​

//分离单元格

​$objPHPExcel->getActiveSheet()->unmergeCells('A28:B28');​

//设置格式

​$objPHPExcel->getActiveSheet()->getStyle('E4')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);

​$objPHPExcel->getActiveSheet()->duplicateStyle( $objPHPExcel->getActiveSheet()->getStyle('E4'), 'E5:E13' );
​//设置font

​$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara');

​$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(20);

​$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);

​$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);

​$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);

//设置align

​$objPHPExcel->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

​$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);​

//设置column的border

​$objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

//批量配置

$styleArray = array(  

       'borders' => array(  

           'allborders' => array(  

               'style' => PHPExcel_Style_Border::BORDER_THIN,//细边框  

           ),  

       ),  

   );

$objPHPExcel->getActiveSheet()->getStyle('A5:N5')->applyFromArray($styleArray);

//设置border的color

​$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getLeft()->getColor()->setARGB('FF993300');

​$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getTop()->getColor()->setARGB('FF993300');

​$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getBottom()->getColor()->setARGB('FF993300');

​$objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getRight()->getColor()->setARGB('FF993300');​

//设置填充颜色

​$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);

​$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF808080');

//从excel文件中读取图片

foreach($objPHPExcel->getSheet(0)->getDrawingCollection() as $drawing) {

        $xy = $drawing->getCoordinates();//获取图片的位置,位置是根据图片左上角的点在的位置决定

        $imageFileName = $drawing->getIndexedFilename();//获取图片的文件名

        $path = $tmp_dir.$xy.'_'.$imageFileName;//要保存的路径

        //for xlsx

        if($drawing instanceof PHPExcel_Worksheet_Drawing){

               $filename = $drawing->getPath();//获取图片的路径,版本不同,读取方式不同

                copy($filename, $path);//复制保存图片到新路径

        }else if($drawing instanceof PHPExcel_Worksheet_MemoryDrawing){//for xls

               $image = $drawing->getImageResource();//03版本获取图片源方式

               $renderingFunction = $drawing->getRenderingFunction();  

               switch ($renderingFunction) {

               case PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG:  

                   imagejpeg($image, $path);  

                   break;

               case PHPExcel_Worksheet_MemoryDrawing::RENDERING_GIF:  

                   imagegif($image, $path);  

                   break;  

               case PHPExcel_Worksheet_MemoryDrawing::RENDERING_PNG:  

                   imagegif($image, $path);  

                   break;  

               case PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT:  

                   imagegif($image, $path);  

                   break;

           }

        }

​//加图片

 $objDrawing = new PHPExcel_Worksheet_Drawing();

$objDrawing->setName('Logo');

$objDrawing->setDescription('Logo');

$objDrawing->setPath($path);

$objDrawing->setCoordinates('B4');

$objDrawing->setOffsetX(10);//左上角X轴向右位移10

$objDrawing->setRotation(90);

$objDrawing->getShadow()->setVisible(true);

$objDrawing->getShadow()->setDirection(45);

$objDrawing->setHeight(100);

$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值