if(!defined('API_PATH')) define('API_PATH',realpath(dirname(__FILE__).'/Classes'));
if(!function_exists('excel_2003')){
/**
* @param $data 存储数据的二维数组
* @param $target_name 要保存的目标文件名称
* @param $start_row 开始写入数据的行
* @param $columns 需要写入数据的列
* @param $template 模板文件
* @param bool $output 是否直接通过网页下载
*/
function excel_2003($data,$target_name,$start_row,$columns,$template,$output=true){
if(empty($data))
if(empty($start_row)) $start_row=1;
/** PHPExcel */
if(!empty($template)){
require API_PATH.'/PHPExcel/Reader/Excel5.PHP';
$reader=new PHPExcel_Reader_Excel5;
$excel=$reader->load($template);//通过现有文件创建PHPExcel实例
}
$sheet=$excel->getActiveSheet();
if(empty($columns)) $columns=array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
$currRow=$start_row;
foreach($data as $row){
foreach($row as $key=>$val){
$sheet->setCellValue($columns[$key].$currRow,$val);//使用这个方法PHPExcel会过滤数据
//$sheet->setCellValueExplicit($columns[$key].$currRow,$val);//使用这个方法可以避免PHPExcel过滤数据,只将源数据作为文本直接输出。
}
$currRow++;
}
/** PHPExcel_Writer_Excel5 */
include API_PATH.'/PHPExcel/Writer/Excel5.php';
$writer=new PHPExcel_Writer_Excel5($excel);
ob_end_clean();
if($output){
export_excel($target_name,false,$writer);
}else{
$writer->save('D:\\testExcel\\'.$target_name.'.xls');
}
}
}
if(!function_exists('export_excel')){
/**
* 将文件输出至网页下载,数据源可以是文件也可以是Excel实例
* @param $outputName 要保存的文件名
* @param bool $fileName 源文件名
* @param bool $writer 源数据
*/
function export_excel($outputName,$fileName=false, $writer=false){
header('Content-Type: application/vnd.ms-excel');
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outputName.'.xls"');
header("Content-Transfer-Encoding: binary");
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: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
if($fileName) echo file_get_contents(APPPATH.'excel/'.$outputName);
elseif($writer) $writer->save('php://output');
}
}