修订版 PHP 导入 、导出EXCEL

<?php

header("Content-Type: text/html; charset=utf-8");

require_once './PHPExcel.php';
require_once './PHPExcel/IOFactory.php';
require_once './PHPExcel/Reader/Excel5.php';


/**
*    读取Excel表格
*    @param $filePath   Excel文件路径
*    @param $field        需要保存的字段        array('id','username','password')
*    @param $column        读取Excel那列        array('A','B','C')
*    @param $start        从第几行遍历        num
*    @examlpe
*/    




    $filePath = 'Book1.xls';
    
    $column = array( 'A','B','C','D','E');
    $start = 1;
    $list = readExcel($filePath,$column,$start);

    
function readExcel($filePath,$column,$start){

    $objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format

    $objPHPExcel = $objReader->load($filePath); //$filename可以是上传的文件,或者是指定的文件

    $sheet = $objPHPExcel->getSheet(0);

    $highestRow = $sheet->getHighestRow(); // 取得总行数
    
    $highestColumn = $sheet->getHighestColumn(); // 取得总列数
    
    
    for($j=$start;$j<=$highestRow;$j++)
    {
        $colData = array();
        $count = count($column);
        for($i=0;$i<$count;$i++){
            
            //$colData["id".($i+1)] = $objPHPExcel->getActiveSheet()->getCell($column[$i].$j)->getValue();//获取A列的值
            $colData[$column[$i]] = $objPHPExcel->getActiveSheet()->getCell($column[$i].$j)->getValue();//获取A列的值
            
        }
        
        $excelData[] = $colData;
        
    }
    
    return $excelData;
}



//$data = array(array('a','b','c','d'),array('e','f','g','h'));
$field = array('A','B','C','D','E','F');
exportexcel($list,$field,'test1111.xls','aaaaaaa');
/**
*    导出数据为excel表格
*    @param $data    一个二维数组,结构如同从数据库查出来的数组
*    @param $title   excel的第一行标题,一个数组,如果为空则没有标题
*    @param $filename 下载的文件名
    $param $field    保存到excel 的 第几行  的第几列
*    @examlpe
    exportexcel($data,$field,'test.xls','这是个测试');
*/
function exportexcel($data,$field,$filename,$title){

        $objPHPExcel = new PHPExcel; //实例化excel类  
        
        //$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); //实例化excel5(2007以前的版本)写入类

        $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);



         /* 设置当前的sheet */
        $objPHPExcel->setActiveSheetIndex(0);
        $objActSheet = $objPHPExcel->getActiveSheet();
        
        /**shee标题**/
        $objActSheet->setTitle($title);
        
        $fields = '';
        $i = 1;
        foreach($data as $value){
            $j = 0;
            foreach($value as $k=>$v){
                
                
                $fields = $field[$j].$i;
                
                
                $objActSheet->setCellValue($fields,$v);
                $j++;
            }
            
            $i++;
        }
        $objWriter->save($filename);
        header("Pragma: public");
        header("Expires: 0");
        header("Cache-Control:must-revalidate,post-check=0,pre-check=0");
        header("Content-Type:application/force-download");
        header("Content-Type:application/vnd.ms-execl");
        header("Content-Type:application/octet-stream");
        header("Content-Type:application/download");
        header('Content-Disposition:attachment;filename='.$filename);
        header("Content-Transfer-Encoding:binary");
        $objWriter->save('php://output');
        

}






?>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值