用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);
}