PHPExcel导入导出功能实现

本篇是讲解常见的导入导出excel表格的问题

首先在网上下载PHPExcel类库,放在你所用框架的相应文件夹里,以备使用。

1:导入功能以微擎框架为例,其中要插入的数据内容自定义

<?php

defined('IN_IA') or exit('Access Denied');
$dir=dirname(__FILE__);
require $dir."/PHPExcel/PHPExcel.php";

$id = $_GPC['data'];
//获取数据库信息
$ret=pdo_fetchall("select * from ".tablename('zhwy_information')." where id in ($id)");

$objPHPExcel=new PHPExcel();
for($i=1;$i<=3;$i++)
{
		if($i>1)
		{
			$objPHPExcel->createSheet();//创建新的内置表
		}
		$objPHPExcel->setActiveSheetIndex($i-1);
		$objSheet=$objPHPExcel->getActiveSheet();//获取当前的sheet
		$objSheet->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER)->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
		$objSheet->getDefaultStyle()->getFont()->setName("微软雅黑")->setSize("14");
		$objSheet->getStyle("A1:Z1")->getFont()->setSize("16")->setBold(True);
		$objSheet->getStyle("A1:V1")->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('ffffcc');
                $objSheet->setCellValue("A1","id")->setCellValue("B1","公众号cid")->setCellValue("C1","联系人姓名")->setCellValue("D1","联系人电话")
                ->setCellValue("E1","联系邮箱")->setCellValue("F1","公司名称")->setCellValue("G1","创建时间")->setCellValue("H1","省份")
                ->setCellValue("I1","市")->setCellValue("J1","区/县")->setCellValue("K1","详细地址")->setCellValue("L1","负责人")
                ->setCellValue("M1","负责人身份证号")->setCellValue("N1","负责人电话")->setCellValue("O1","客服电话")->setCellValue("P1","结算账户")
                ->setCellValue("Q1","结算开户行")->setCellValue("R1","开户支行")->setCellValue("S1","开户行省份")->setCellValue("T1","开户城市")
                ->setCellValue("U1","账户类型")->setCellValue("V1","法人/负责人身份证号");

     $j=2;
      //循环搜索,并导出到excel中
       foreach($ret as $key=>$activity)
	 {
	 	
	 	$objSheet->setCellValue("A".$j,$activity['id'])->setCellValue("B".$j,$activity['uniacid'])
                ->setCellValue("C".$j,$activity['user_name'])->setCellValueExplicit("D".$j,$activity['user_mobile'],
                PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("E".$j,$activity['user_email'],
                PHPExcel_Cell_DataType::TYPE_STRING)->setCellValue("F".$j,$activity['company_name'])
                ->setCellValueExplicit("G".$j,date("Y-m-d H:i:s",$activity['create_time']),
                PHPExcel_Cell_DataType::TYPE_STRING)->setCellValue("H".$j,$activity['province'])->setCellValue("I".$j,$activity['city'])
                ->setCellValue("J".$j,$activity['country'])->setCellValue("K".$j,$activity['detailed_address'])
                ->setCellValue("L".$j,$activity['manager_name'])->setCellValueExplicit("M".$j,$activity['manager_id'],
                PHPExcel_Cell_DataType::TYPE_STRING)->setCellValueExplicit("N".$j,$activity['manager_mobile'],PHPExcel_Cell_DataType::TYPE_STRING)
                ->setCellValueExplicit("O".$j,$activity['service_tel'],PHPExcel_Cell_DataType::TYPE_STRING)
                ->setCellValueExplicit("P".$j,$activity['account'],PHPExcel_Cell_DataType::TYPE_STRING)->setCellValue("Q".$j,$activity['account_bank'])
                ->setCellValue("R".$j,$activity['account_son_bank'])->setCellValue("S".$j,$activity['account_province'])
                ->setCellValue("T".$j,$activity['account_city'])->setCellValue("U".$j,$activity['account_type'])
                 ->setCellValueExplicit("V".$j,$activity['principal_id'],PHPExcel_Cell_DataType::TYPE_STRING);
	 	$j++;


	 }
}
	$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');//生成excel文件
	//$objWriter->save($dir."/export_1.xls");//保存文件
	browser_export('Excel5','browser_excel03.xls');//输出到浏览器
	$objWriter->save("php://output");


	function browser_export($type,$filename){
		if($type=="Excel5"){
				header('Content-Type: application/vnd.ms-excel');//告诉浏览器将要输出excel03文件
		}else{
				header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');//告诉浏览器数据excel07文件
		}
		header('Content-Disposition: attachment;filename="'.$filename.'"');//告诉浏览器将输出文件的名称
		header('Cache-Control: max-age=0');//禁止缓存
	}

2:导出功能以thinkcmf5为例

<?php
// +----------------------------------------------------------------------

// | Author: drt9527  < 1017002145@qq.com>
// +----------------------------------------------------------------------

namespace app\credit\controller;
header("Content-Type:text/html;charset=utf-8");
use cmf\controller\AdminBaseController;
use think\Db;

//放到simplewind/vendor目录下可直接引用
use PHPExcel_IOFactory;
use PHPExcel;
class ExcelController extends AdminBaseController
{

    public function  intoDatabase()
    {
        $dir=dirname(__FILE__);
        //获取同级目录下的word文件
        $filename=$dir.'/browser_excel03.xls';

 
        $objPHPExcel= PHPExcel_IOFactory::load($filename);//加载文件
	    // foreach($objPHPExcel->getWorksheetIterator() as $sheet)//循环获取sheet
	    // {
	    // 	foreach ($sheet ->getRowIterator() as  $row)//逐行处理
	    // 	{
	    // 		if($row->getRowIndex()<2)
	    // 		{
	    // 			continue;
	    // 		}
	    // 		foreach ($row->getCellIterator() as $key=> $cell)//逐行读取
	    // 		{
	    // 			$data=$cell->getValue();
	    // 			if (!empty($data))
	    // 			{
	    // 				$dat[]=$data;
	    // 			}

	    // 		}
	    // 	    dump($dat).' ';
	    			
	    // 	}
 
	    // }
	   
	    // exit;
           //以上注释为原样输出格式,下方为可用于插入数据库操作(逐行插入)
       for($i=2;$i<=3;$i++)
	    {   $data['name']=$objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();
	        $data['manager']=$objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
	        $data['mobile']=$objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();

	    	var_dump($data);exit;
	    }
	    
    }

}
?>
3:若有不解,可添加评论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值