function export_excel($filename,$data){
$filename = trim($filename);
if(!$filename || !is_array($data[0])) return false;
$columns = array_keys($data[0]);
require_once __DIR__.'/PHPExcel/PHPExcel.php';
require_once __DIR__.'/PHPExcel/PHPExcel/Reader/Excel2007.php';
require_once __DIR__.'/PHPExcel/PHPExcel/Reader/Excel5.php';
include_once __DIR__.'/PHPExcel/PHPExcel/IOFactory.php';
$columns = iconv_all("gbk","utf-8",$columns);
$data = iconv_all("gbk","utf-8",$data);
$resultPHPExcel = new PHPExcel();
$num = count($columns);
$indexs = array();
$letters = range("A","Z");
$round = ceil($num/26);
if($round > 1){
$indexs = $letters;
$pos = 26;
for($r = 0;$r < ($round - 1); $r++){
$str = $letters[$r];
for($k = 0;$k < 26;$k++){
if($pos > $num) break;
$indexs[] = $str . $letters[$k];
$pos++;
}
}
}else{
for($i = 0;$i<$num;$i++) $indexs[] = $letters[$i];
}
foreach($columns as $key => $column){
$resultPHPExcel->getActiveSheet()->setCellValue($indexs[$key].'1',$column);
}
$row = 2;
foreach($data as $item){
$j = 0;
foreach($item as $val){
$index = $indexs[$j].$row;
if(isMobile($val)){
$resultPHPExcel->getActiveSheet()->setCellValue($index, " ".$val);
}else{
$resultPHPExcel->getActiveSheet()->setCellValue($index, $val);
}
$j++;
}
$row ++;
}
$outputFileName = $filename.'.xls';
$xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel);
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outputFileName.'"');
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");
$xlsWriter->save( "php://output" );
die;
}
function read_excel($path){
if(!file_exists($path)) return false;
require_once __DIR__.'/PHPExcel/PHPExcel.php';
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($path);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$excelData = array();
$indexs = array();
for($i = 0;$i < $highestColumnIndex;$i++){
$indexs[] = (string)$objWorksheet->getCellByColumnAndRow($i, 1)->getValue();
}
$indexs = iconv_all('utf-8','gbk',$indexs);
for ($row = 2; $row <= $highestRow; $row++) {
$tmp = array();
for($i = 0;$i<$highestColumnIndex;$i++){
$tmp[$indexs[$i]] =(string)$objWorksheet->getCellByColumnAndRow($i, $row)->getValue();
}
$tmp = iconv_all('utf-8','gbk',$tmp);
$excelData[$row] = $tmp;
break;
}
return $excelData;
}