1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
/**
* 数据导出
* @param array $title 标题行名称
* @param array $data 导出数据
* @param string $fileName 文件名
* @param string $savePath 保存路径
* @param $type 是否下载 false--保存 true--下载
* @return string 返回文件全路径
* @throws PHPExcel_Exception
* @throws PHPExcel_Reader_Exception
*/
function exportExcel( $title = array (), $data = array (), $fileName = ‘‘ , $savePath = ‘./‘ , $isDown =false){
include ( ‘PHPExcel.php‘ );
$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( ‘sheet名称‘ ); //设置sheet名称
$_row = 1; //设置纵向单元格标识
if ( $title ){
$_cnt = count ( $title );
$obj ->getActiveSheet(0)->mergeCells( ‘A‘ . $_row . ‘:‘ . $cellName [ $_cnt -1]. $_row ); //合并单元格
$obj ->setActiveSheetIndex(0)->setCellValue( ‘A‘ . $_row , ‘数据导出:‘ . date ( ‘Y-m-d H:i:s‘ )); //设置合并后的单元格内容
$_row ++;
$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‘ ); //这里Excel2007 可能会报错 如果报错改成 Excel5 再试
if ( $isDown ){ //网页下载
header( ‘pragma:public‘ );
header( "Content-Disposition:attachment;filename=$fileName.xls" );
$objWrite ->save( ‘php://output‘ ); exit ;
}
$_fileName = iconv( "utf-8" , "gb2312" , $fileName ); //转码
$_savePath = $savePath . $_fileName . ‘.xlsx‘ ;
$objWrite ->save( $_savePath );
return $savePath . $fileName . ‘.xlsx‘ ;
}
//$this->exportExcel(array(‘姓名‘,‘年龄‘), array(array(‘a‘,21),array(‘b‘,23)), ‘档案‘, ‘./‘, true);
|