用PHP生成excel文件到指定目录
最近公司要生成报表,用PHP生成。
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");
我百度了下,貌似这个很快能够实现,但是这个文件却是生成在在浏览器下载的地方,
我想把生成的文件生成到指定的目录,这样能否实现呢?
还有,可以往里面插入图片吗?
PHPExcel是英文的,看了半天没看懂。有没有直接生成的例子看啊?
下面我们附上例子:
/** +---------------------------------------------------------- *导入所需的类库同java的Import *本函数有缓存功能 +---------------------------------------------------------- *@paramstring$class类库命名空间字符串 *@paramstring$baseUrl起始路径 *@paramstring$ext导入的文件扩展名 +---------------------------------------------------------- *@returnboolen +---------------------------------------------------------- */ functionimport($class,$baseUrl='',$ext='.class.php'){ static$_file=array(); $class=str_replace(array('.','#'),array('/','.'),$class); if(''===$baseUrl&&false===strpos($class,'/')){ //检查别名导入 returnalias_import($class); } if(isset($_file[$class.$baseUrl])) returntrue; else $_file[$class.$baseUrl]=true; $class_strut=explode('/',$class); if(empty($baseUrl)){ if('@'==$class_strut[0]||APP_NAME==$class_strut[0]){ //加载当前项目应用类库 $baseUrl=dirname(LIB_PATH); $class=substr_replace($class,basename(LIB_PATH).'/',0,strlen($class_strut[0])+1); }elseif('think'==strtolower($class_strut[0])){//think官方基类库 $baseUrl=CORE_PATH; $class=substr($class,6); }elseif(in_array(strtolower($class_strut[0]),array('org','com'))){ //org第三方公共类库com企业公共类库 $baseUrl=LIBRARY_PATH; }else{//加载其他项目应用类库 $class=substr_replace($class,'',0,strlen($class_strut[0])+1); $baseUrl=APP_PATH.'../'.$class_strut[0].'/'.basename(LIB_PATH).'/'; } } if(substr($baseUrl,-1)!='/') $baseUrl.='/'; $classfile=$baseUrl.$class.$ext; if(!class_exists(basename($class),false)){ //如果类不存在则导入类库文件 returnrequire_cache($classfile); } } /** *导出EXCEL表格 *@paramarray$data数据,二维数组,每条数据一条记录 *@paramarray$title每列数据的字段名,一唯数组,必须和数据顺序一致(可省略) *@paramstring$filenameexcel名称 *@paramarray$field需要指定导出的数据字段,排序必须和title一致,就是和查出数据的数组key值 */ functionexportExcel($data='',$title='',$filename='excel',$field=array()){ if(!$data||!is_array($data))returnfalse; if($filename=='')$filename='excel'; if($field&&is_array($field)){//只要导出指定字段,且按这个顺序导出 $dateNew=array(); foreach($dataas$k=>$v){ foreach($fieldas$fkey){ $dateNew[$k][$fkey]=$v[$fkey]; } } $data=$dateNew; } import("@.ORG.Util.ExcelXml");//调用导出excel类 $xls=newExcelXml('UTF-8',false,'Sheet1'); $xls->addArray($data,$title); $xls->generateXML($filename); }