php匯入匯出excel執行個體_php執行個體

來源:互聯網
上載者:User

這裡實現的PHP匯入匯出excel功能用到的是開源PHPExcel,執行下面的操作之前請先下載該類庫檔案,官方網站:http://www.codeplex.com/PHPExcel,官網案例代碼很多,匯出pdf什麼的都有,這裡主要介紹PHP匯入匯出excel的功能,匯出excel檔案是office2007格式,同時相容2003。

php匯入excel
匯入的excel檔案的資料格式,截圖如下:
下面是將該excel檔案的資料匯入到資料庫的具體代碼:

複製代碼 代碼如下:

<?php
require_once 'Classes/PHPExcel.php';
require_once 'Classes/PHPExcel/IOFactory.php';
require_once 'Classes/PHPExcel/Reader/Excel5.php';

$objReader=PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
$objPHPExcel=$objReader->load($file_url);//$file_url即Excel檔案的路徑
$sheet=$objPHPExcel->getSheet(0);//擷取第一個工作表
$highestRow=$sheet->getHighestRow();//取得總行數
$highestColumn=$sheet->getHighestColumn(); //取得總列數
//迴圈讀取excel檔案,讀取一條,插入一條
for($j=2;$j<=$highestRow;$j++){//從第一行開始讀取資料
 $str='';
 for($k='A';$k<=$highestColumn;$k++){            //從A列讀取資料
 //這種方法簡單,但有不妥,以'\\'合并為數組,再分割\\為欄位值插入到資料庫,實測在excel中,如果某儲存格的值包含了\\匯入的資料會為空白       
  $str.=$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().'\\';//讀取儲存格
 }
 //explode:函數把字串分割為數組。
 $strs=explode("\\",$str);
 $sql="INSERT INTO `".TB_PREFIX."business`(`username`,`password`,`company`,`prov`,`address`,`btime`,`phone`,`email`,`name`) VALUES (
 '{$strs[0]}',
 '{$strs[1]}',
 '{$strs[2]}',
 '{$strs[3]}',
 '{$strs[4]}',
 '{$strs[5]}',
 '{$strs[6]}',
 '{$strs[7]}',
 '{$strs[8]}')";
 $db->query($sql);//這裡執行的是插入資料庫操作
}
unlink($file_url); //刪除excel檔案
?>

php匯出excel
下面直接放出本人總結的使用PHP匯出Excel的部分調用代碼。

複製代碼 代碼如下:

<?php
error_reporting(E_ALL);
date_default_timezone_set('Asia/Shanghai');
require_once './Classes/PHPExcel.php';

$data=array(
 0=>array(
  'id'=>1001,
  'username'=>'張飛',
  'password'=>'123456',
  'address'=>'三國時高老莊250巷101室'
 ),
 1=>array(
  'id'=>1002,
  'username'=>'關羽',
  'password'=>'123456',
  'address'=>'三國時花果山'
 ),
 2=>array(
  'id'=>1003,
  'username'=>'曹操',
  'password'=>'123456',
  'address'=>'延安西路2055弄3號'
 ),
 3=>array(
  'id'=>1004,
  'username'=>'劉備',
  'password'=>'654321',
  'address'=>'愚園路188號3309室'
 )
);

$objPHPExcel=new PHPExcel();
$objPHPExcel->getProperties()->setCreator('http://www.jb51.net')
        ->setLastModifiedBy('http://www.jb51.net')
        ->setTitle('Office 2007 XLSX Document')
        ->setSubject('Office 2007 XLSX Document')
        ->setDescription('Document for Office 2007 XLSX, generated using PHP classes.')
        ->setKeywords('office 2007 openxml php')
        ->setCategory('Result file');
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1','ID')
            ->setCellValue('B1','使用者名稱')
            ->setCellValue('C1','密碼')
            ->setCellValue('D1','地址');

$i=2;   
foreach($data as $k=>$v){
 $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A'.$i,$v['id'])
            ->setCellValue('B'.$i,$v['username'])
            ->setCellValue('C'.$i,$v['password'])
            ->setCellValue('D'.$i,$v['address']);
 $i++;
}
$objPHPExcel->getActiveSheet()->setTitle('三年級2班');
$objPHPExcel->setActiveSheetIndex(0);
$filename=urlencode('學生資訊統計表').'_'.date('Y-m-dHis');


/*
*產生xlsx檔案
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');
header('Cache-Control: max-age=0');
$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
*/

/*
*產生xls檔案
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
*/

$objWriter->save('php://output');
exit;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.