Home  >  Article  >  Backend Development  >  PHP uses the PHPExcel class to export and import Excel usage_PHP tutorial

PHP uses the PHPExcel class to export and import Excel usage_PHP tutorial

WBOY
WBOYOriginal
2016-07-20 11:11:521005browse

The PHPExcel class is an excel table processing plug-in for PHP. Now I will introduce to you the application method of using the PHPExcel class to import and export excel tables. Friends who need to know more can refer to it for reference (PHPExcel is downloaded from Baidu and will not be introduced here).

Export Excel usage

//Set environment variables (added PHPExcel)

The code is as follows Copy code
 代码如下 复制代码

set_include_path('.'. PATH_SEPARATOR . Yii::app()->basePath.'/lib/PHPExcel' . PATH_SEPARATOR .

get_include_path()); 
//注:在yii中,也可以直接Yii::import(“application.lib.PHPExcel.*”); 
 
//引入PHPExcel相关文件 
require_once "PHPExcel.php"; 
require_once 'PHPExcel/IOFactory.php'; 
require_once 'PHPExcel/Writer/Excel5.php'; 

set_include_path('.'. PATH_SEPARATOR . Yii::app()->basePath .'/lib/PHPExcel' . PATH_SEPARATOR .

get_include_path());
//Note: In yii, you can also directly Yii::import("application.lib.PHPExcel.*" );

//Introducing PHPExcel related files
require_once "PHPExcel.php";
require_once 'PHPExcel/IOFactory.php';
require_once 'PHPExcel/Writer/ Excel5.php';
 代码如下 复制代码

//新建 

$resultPHPExcel = new PHPExcel(); 
//设置参数 

//设值 

$resultPHPExcel->getActiveSheet()->setCellValue('A1', '季度'); 
$resultPHPExcel->getActiveSheet()->setCellValue('B1', '名称'); 
$resultPHPExcel->getActiveSheet()->setCellValue('C1', '数量'); 
$i = 2; 
foreach($data as $item){ 
$resultPHPExcel->getActiveSheet()->setCellValue('A' . $i, $item['quarter']); 
$resultPHPExcel->getActiveSheet()->setCellValue('B' . $i, $item['name']); 
$resultPHPExcel->getActiveSheet()->setCellValue('C' . $i, $item['number']); 
$i ++; 
}

//Put the content to be exported into the table

The code is as follows Copy code
 代码如下 复制代码

//设置导出文件名 

$outputFileName = 'total.xls'; 

$xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel); 

//ob_start(); ob_flush(); 

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" );

//New $resultPHPExcel = new PHPExcel();
//Set parameters //Set value $resultPHPExcel->getActiveSheet()->setCellValue('A1' , 'Quarterly');
$resultPHPExcel->getActiveSheet()->setCellValue('B1', 'Name');
$resultPHPExcel->getActiveSheet()->setCellValue(' C1', 'Quantity');
$i = 2;
foreach($data as $item){
$resultPHPExcel->getActiveSheet()->setCellValue('A' . $i, $item['quarter']);
$resultPHPExcel->getActiveSheet()->setCellValue('B' . $i, $item['name']);
$resultPHPExcel->getActiveSheet()->setCellValue('C' . $i, $item['number']);
$i ++;
}
Set export parameters
The code is as follows Copy code
//Set the export file name $outputFileName = 'total.xls'; $xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel); //ob_start(); ob_flush(); 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" );

The output is wrong.

The default $xlsWriter->save( "php://output" ); may be incomplete because the cache is not large enough, so make a transfer as follows:

The code is as follows Copy code td>
 代码如下 复制代码

 

$finalFileName = (Yii::app()->basePath.'/runtime/'.time().'.xls'; 

$xlsWriter->save($finalFileName); 

echo file_get_contents($finalFileName); 

$finalFileName = (Yii::app()->basePath.'/runtime/'.time().'.xls'; $xlsWriter->save ($finalFileName); echo file_get_contents($finalFileName);

//file_get_contents() function reads the entire file into a string. Same as file(), except that file_get_contents() reads the file into a string.

Import Excel usage

The code is as followsif($_POST['leadExcel'] == "true")

{
$filename = $_FILES['inputExcel']['name'];
$tmp_name = $_FILES['inputExcel']['tmp_name'];
$msg = uploadFile($filename,$tmp_name);
echo $msg;
}

//Import Excel file

function uploadFile($file,$filetempname)

{
//Set the upload file storage path by yourself
$filePath = 'upFile/';
$str = "";
//The following path should be modified according to your PHPExcel path
require_once '../PHPExcel/PHPExcel.php';
require_once '../PHPExcel/PHPExcel/IOFactory.php';
require_once '../PHPExcel/PHPExcel/Reader/Excel5.php';

//Pay attention to setting the time zone

$time=date("y-m-d-H-i-s");//Go to the current upload time

//Get the extension of the uploaded file
$extend=strrchr ($file,'.');
//The uploaded file name
$name=$time.$extend;
$uploadfile=$filePath.$name;//Uploaded file name address
//move_uploaded_file() function moves the uploaded file to a new location. Returns true if successful, false otherwise.
$result=move_uploaded_file($filetempname,$uploadfile);//If uploaded to the current directory
//echo $result;
if($result) //If the file upload is successful, execute the import excel operations
{
include "conn.php";
$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
$objPHPExcel = $objReader-> load($uploadfile);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); ->getHighestColumn(); //Get the total number of columns
  
   /* The first method

// Read the excel file in a cycle, read one, insert a
for ($ j = 1; $ j & lt; = $ highestrow; $ j ++) // Read data from the first line
{
for($k='A';$k<=$highestColumn;$k++) //Read data from column A
The method is simple but has Inappropriate, use '' to merge into an array, and then divide it into field values ​​and insert them into the database
Actual measurement in excel, if the value of a cell contains imported data will be empty
$str .=$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().'';//Read cell
                                                                                                                           ; die();
//explode: function splits the string into an array.
           $strs = explode("",$str);
                   $sql = "INSERT INTO te(`1`, `2`, `3`, `4`, `5`) VALUES (
'{$strs[0]}',
'{$strs[1]}',
'{$strs[2]}',
'{$strs[3]}',
        '{$strs[4]}')";                                                                               return false;
echo 'The sql statement is wrong'; $msg = "Import Success! ";
*/

        /* 第二种方法*/
        $objWorksheet = $objPHPExcel->getActiveSheet();
        $highestRow = $objWorksheet->getHighestRow();
        echo 'highestRow='.$highestRow;
        echo "
";
        $highestColumn = $objWorksheet->getHighestColumn();
        $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//总列数
        echo 'highestColumnIndex='.$highestColumnIndex;
        echo "
";
        $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();
            }   
            $sql = "INSERT INTO te(`1`, `2`, `3`, `4`, `5`) VALUES (
            '{$strs[0]}',
            '{$strs[1]}',
            '{$strs[2]}',
            '{$strs[3]}',
            '{$strs[4]}')";
            //die($sql);
            if(!mysql_query($sql))
            {
                return false;
                echo 'sql语句有误';
            }
        }
    }
    else
    {
       $msg = "导入失败!";
    }
    return $msg;
}
?>

Copy code

HTML网页代码

 代码如下
 代码如下 复制代码


   
   
   
      
   
   

       
      

复制代码
                          
              

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/444616.htmlTechArticlePHPExcel class is an excel table processing plug-in for PHP. Let me introduce to you how to use PHPExcel class to import and export. Friends who need to know how to apply excel tables may refer to it...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn