dreamhome
<?php
// 这里用的PHPExcel版本号为1.8.0
// 下载地址https://github.com/PHPOffice/PHPExcel 下载ZIP压缩包
// 下载后将Classes文件夹提取出来供后续使用


/*
原插件存放目录结构
根目录下Classes
            --PHPExcel文件夹
            --PHPExcel.php文件
*/
/** Include PHPExcel */
require_once \'/Classes/PHPExcel.php\';
/*
在thinkPHP中 将Classes文件夹重命名成PHPExcel,放到目录 ThinkPHP/Library/Vendor下
存放到thinkPHP中后目录结构
根目录下ThinkPHP
            --Library
                    --Vendor
                            --PHPExcel
                                    --PHPExcel文件夹
                                    --PHPExcel.php文件
*/

// 在thinkPHP中包含PHPExcel.php文件方式
// vendor(\'PHPExcel.PHPExcel\');
// 并且在thinkPHP中调用插件的所有类名前加反斜杠 \


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

// Set document properties
$objPHPExcel->getProperties ()->setCreator ( "zend" )-> // 作者
setLastModifiedBy ( "zend" )-> // 最后一次保存者
setTitle ( "Office 2007 XLSX Document" )-> // 标题
setSubject ( "Office 2007 XLSX Document" )-> // 主题
setDescription ( "document for Office 2007 XLSX, generated using PHP classes." )-> // 备注
setKeywords ( "office 2007 openxml php" )-> // 标记
setCategory ( "result file" ); // 类别

$objPHPExcel->getActiveSheet ()->getColumnDimension ( \'A\' )->setWidth ( \'15\' ); // 设置列宽度
$objPHPExcel->getActiveSheet ()->getColumnDimension ( \'B\' )->setWidth ( \'30\' );
$objPHPExcel->getActiveSheet ()->getColumnDimension ( \'C\' )->setWidth ( \'30\' );
$objPHPExcel->getActiveSheet ()->getColumnDimension ( \'D\' )->setWidth ( \'20\' );

// Add some data
$objPHPExcel->setActiveSheetIndex ( 0 )
->setCellValue ( \'A1\', \'手机号码\' ) // 第一行A列值
->setCellValue ( \'B1\', \'姓名\' ) // 第一行B列值
->setCellValue ( \'C1\', \'图片\' ) // 第一行C列值
->setCellValue ( \'D1\', \'提交时间\' ); // 第一行D列值







// 从此开始行数可在循环中累加
$objPHPExcel->setActiveSheetIndex ( 0 )
->setCellValue ( \'A\' . \'2\', \' \' . \'12345678910\' ) // 第二行A列值
->setCellValue ( \'B\' . \'2\', \' \' . \'用户名\' ); // 第二行B列值

/* 实例化插入图片类 */
$objDrawing = new \PHPExcel_Worksheet_Drawing ();
/* 设置图片路径 切记:只能是本地图片 */
$objDrawing->setPath ( \'./img/test.jpg\' );
/* 设置图片高度 */
$objDrawing->setHeight ( 100 );
/* 设置图片要插入的单元格位置 */
$objDrawing->setCoordinates ( \'C\' . \'2\' ); // 这里第二行C列
// 写入图片在指定格中的X坐标值
$objDrawing->setOffsetX ( 20 );
// 写入图片在指定格中的Y坐标值
$objDrawing->setOffsetY ( 20 );
// 设置旋转角度
// $objDrawing->setRotation(20);
$objDrawing->getShadow ()->setVisible ( true );
$objDrawing->getShadow ()->setDirection ( 50 );
$objDrawing->setWorksheet ( $objPHPExcel->getActiveSheet () );

// 设置单元格高度
$objPHPExcel->getActiveSheet ()->getRowDimension ( $key + 2 )->setRowHeight ( 100 );

$objPHPExcel->setActiveSheetIndex ( 0 )->setCellValue ( \'D\' . \'2\', \' \' . \'2017-08-24 16:01\' ); // 第二行D列值
// 如果循环添加行,则此处循环终止








// Rename worksheet
$objPHPExcel->getActiveSheet ()->setTitle ( \'Simple\' );

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

// 重定向输出到客户端的Web浏览器 (Excel2007)
header ( \'Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\' );
header ( \'Content-Disposition: attachment;filename="测试文件名.xlsx"\' );
header ( \'Cache-Control: max-age=0\' );
// 如果是IE9浏览器,则需要下面这条
header ( \'Cache-Control: max-age=1\' );

// 如果是带SSL的IE,则可能用到下面这条
header ( \'Expires: Mon, 26 Jul 1997 05:00:00 GMT\' ); // 过去的日期
header ( \'Last-Modified: \' . gmdate ( \'D, d M Y H:i:s\' ) . \' GMT\' ); // 实时时间
header ( \'Cache-Control: cache, must-revalidate\' ); // HTTP/1.1
header ( \'Pragma: public\' ); // HTTP/1.0

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

 

分类:

技术点:

相关文章: