下载PHPExcel地址:https://github.com/PHPOffice/PHPExcel
1、用PHPExcel导出方法实现
基本流程:
a:引入PHPExcel.php文件
include("PHPExcel.php")
b:创建PHPExcel对象
$obj = new \PHPExcel();
c:设置xls表格的横向标识(例如:array('A','B','C','D','E'))
$cellName = 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', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
d:设置sheet表标题
$obj->getActiveSheet(0)->setTitle("sheet标题")
e:设置表格标题
$row = 1; // 当前行数
if(标题存在) {
foreach(标题数组 as $v) {
}
}
f:设置表格数据
g:设置文件名称
h:是否下载
i:是否保存
/**
* phpexcel导出数据
* @param string $sheetName Excel表格名称
* @param array $title 表格标题
* @param array $data 表单数据
* @param string $fileName 保存的文件名
* @param string $savePath 保存路径
* @param bool $isDown 是否下载
* @return string
* @throws PHPExcel_Exception
* @throws PHPExcel_Reader_Exception
* @throws PHPExcel_Writer_Exception
*/
function phpexcel_out($sheetName = '表单数据', $title = array(), $data = array(), $fileName = '', $savePath = '', $isDown = true) {
vendor("phpexcel.PHPExcel");
$obj = new \PHPExcel();
$cellName = 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', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
$obj->getActiveSheet(0)->setTitle($sheetName); //设置sheet名称
$_row = 1; //设置纵向单元格标识
if($title){
$_cnt = count($title);
$i = 0;
foreach($title AS $v){ //设置列标题
$obj->setActiveSheetIndex(0)->setCellValue($cellName[$i].$_row, $v);
$i++;
}
$_row++;
}
//填写数据
if($data){
$i = 0;
foreach($data as $_v){
$j = 0;
foreach($_v as $_cell){
$obj->getActiveSheet(0)->setCellValue($cellName[$j] . ($i+$_row), $_cell);
$j++;
}
$i++;
}
}
//文件名处理
if(!$fileName){
$fileName = uniqid(time(),true);
}
$objWrite = PHPExcel_IOFactory::createWriter($obj, 'Excel2007');
if($isDown){ //网页下载
header('pragma:public');
header("Content-Disposition:attachment;filename=$fileName.xls");
$objWrite->save('php://output');exit;
}
$_fileName = iconv("utf-8", "gb2312", $fileName); //转码
if($savePath) {
$_savePath = $savePath.$_fileName.'.xlsx';
$objWrite->save($_savePath);
}
return $savePath.$fileName.'.xlsx';
}