本文实例讲述了PHP使用PHPexcel导入导出数据的方法。分享给大家供大家参考,具体如下:
导入数据:
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
|
<?php
error_reporting (E_ALL); //开启错误
set_time_limit(0); //脚本不超时
date_default_timezone_set( 'Europe/London' ); //设置时间
/** Include path **/
set_include_path(get_include_path() . PATH_SEPARATOR . ' http://www.zzvips.com/../Classes/ ' );//设置环境变量
/** PHPExcel_IOFactory */
include 'PHPExcel/IOFactory.php' ;
//$inputFileType = 'Excel5'; //这个是读 xls的
$inputFileType = 'Excel2007' ; //这个是计xlsx的
//$inputFileName = './sampleData/example2.xls';
$inputFileName = './sampleData/book.xlsx' ;
echo 'Loading file ' , pathinfo ( $inputFileName ,PATHINFO_BASENAME), ' using IOFactory with a defined reader type of ' , $inputFileType , '<br />' ;
$objReader = PHPExcel_IOFactory::createReader( $inputFileType );
$objPHPExcel = $objReader ->load( $inputFileName );
/*
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); //取得总行数
$highestColumn = $sheet->getHighestColumn(); //取得总列
*/
$objWorksheet = $objPHPExcel ->getActiveSheet(); //取得总行数
$highestRow = $objWorksheet ->getHighestRow(); //取得总列数
echo 'highestRow=' . $highestRow ;
echo "<br>" ;
$highestColumn = $objWorksheet ->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString( $highestColumn ); //总列数
echo 'highestColumnIndex=' . $highestColumnIndex ;
echo "<br />" ;
$headtitle = array ();
for ( $row = 1; $row <= $highestRow ; $row ++)
{
$strs = array ();
//注意highestColumnIndex的列数索引从0开始
for ( $col = 0; $col < $highestColumnIndex ; $col ++)
{
$strs [ $col ] = $objWorksheet ->getCellByColumnAndRow( $col , $row )->getValue();
}
$info = array (
'word1' => "$strs[0]" ,
'word2' => "$strs[1]" ,
'word3' => "$strs[2]" ,
'word4' => "$strs[3]" ,
);
//在这儿,你可以连接,你的数据库,写入数据库了
print_r( $info );
echo '<br />' ;
}
?>
|
导出数据:
(如果有特殊的字符串 = 麻烦 str_replace(array('='),'',$val['roleName']);)
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
|
private function _export_data( $data = array ())
{
error_reporting (E_ALL); //开启错误
set_time_limit(0); //脚本不超时
date_default_timezone_set( 'Europe/London' ); //设置时间
/** Include path **/
set_include_path(FCPATH.APPPATH. '/libraries/Classes/' ); //设置环境变量
// Create new PHPExcel object
Include 'PHPExcel.php' ;
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel ->getProperties()->setCreator( "Maarten Balliauw" )
->setLastModifiedBy( "Maarten Balliauw" )
->setTitle( "Office 2007 XLSX Test Document" )
->setSubject( "Office 2007 XLSX Test Document" )
->setDescription( "Test document for Office 2007 XLSX, generated using PHP classes." )
->setKeywords( "office 2007 openxml php" )
->setCategory( "Test result file" );
// Add some data
$letter = 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' );
if ( $data ){
$i = 1;
foreach ( $data as $key => $value ) {
$newobj = $objPHPExcel ->setActiveSheetIndex(0);
$j = 0;
foreach ( $value as $k => $val ) {
$index = $letter [ $j ]. "$i" ;
$objPHPExcel ->setActiveSheetIndex(0)->setCellValue( $index , $val );
$j ++;
}
$i ++;
}
}
$date = date ( 'Y-m-d' ,time());
// Rename worksheet
$objPHPExcel ->getActiveSheet()->setTitle( $date );
$objPHPExcel ->setActiveSheetIndex(0);
// Redirect output to a client's web browser (Excel2007)
header( 'Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' );
header( 'Content-Disposition: attachment;filename="' . $date . '.xlsx"' );
header( 'Cache-Control: max-age=0' );
$objWriter = PHPExcel_IOFactory::createWriter( $objPHPExcel , 'Excel2007' );
$objWriter ->save( ' php://output ' );
exit ;
}
|
直接上代码:
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
|
public function export_data( $data = array ())
{
# code...
include_once (APP_PATH. 'Tools/PHPExcel/Classes/PHPExcel/Writer/IWriter.php' ) ;
include_once (APP_PATH. 'Tools/PHPExcel/Classes/PHPExcel/Writer/Excel5.php' ) ;
include_once (APP_PATH. 'Tools/PHPExcel/Classes/PHPExcel.php' ) ;
include_once (APP_PATH. 'Tools/PHPExcel/Classes/PHPExcel/IOFactory.php' ) ;
$obj_phpexcel = new PHPExcel();
$obj_phpexcel ->getActiveSheet()->setCellValue( 'a1' , 'Key' );
$obj_phpexcel ->getActiveSheet()->setCellValue( 'b1' , 'Value' );
if ( $data ){
$i =2;
foreach ( $data as $key => $value ) {
# code...
$obj_phpexcel ->getActiveSheet()->setCellValue( 'a' . $i , $value );
$i ++;
}
}
$obj_Writer = PHPExcel_IOFactory::createWriter( $obj_phpexcel , 'Excel5' );
$filename = "outexcel.xls" ;
header( "Content-Type: application/force-download" );
header( "Content-Type: application/octet-stream" );
header( "Content-Type: application/download" );
header( 'Content-Disposition:inline;filename="' . $filename . '"' );
header( "Content-Transfer-Encoding: binary" );
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" );
$obj_Writer ->save( ' php://output ' );
}
|
希望本文所述对大家php程序设计有所帮助。