牛骨文教育服务平台(让学习变的简单)
博文笔记

PHP文件导出-Excel和csv

创建时间:2016-08-05 投稿人: 浏览次数:1686

(一)phpexcel文件导出:

       步骤1,引入文件require APPPATH."/libraries/PHPExcel.php";
       步骤2,   实例化PHPEXCEL对象 $objPHPExcel=new PHPExcel();

       步骤3,  设置表头     $column = array("A","B","C");   $line = array("词语","频次","词性");
                   //填充表头信息
                   for($i = 0;$i < count($tableheader_all);$i++) {
                       $objPHPExcel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");

                       //上一行中"$letter[$i]1"表示第“1”行第“$i”列

                   }

        步骤4, 填充数据

                   for ($i = 2;$i <= count($data) + 1;$i++) {//因为内容是从第二行开始的,所以i=2表示从第二行开始填充数据
                       $j = 0;
                       foreach ($tmp as $key=>$val ){       
                           $objPHPExcel->getActiveSheet()->setCellValue("$letter[$j]$i",$data[$i-2][$val]); //数据是从第一条开始但是i的初值是2所以想从第一条开始应该是$data[$i-2]开始
                           $j++;
                       }
                   }

        步骤5,写进excel中并输出

                     $write = new PHPExcel_Writer_Excel5($objPHPExcel);

                     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="数据导出_词云图.xls"");
                     header("Content-Transfer-Encoding:binary");
                     $write->save("php://output");


(一)CSV文件导出:  

           csv文件导出最令人头疼的问题就是编码问题,现在分享一下我的经验

           首先看服务器是linux的还是windows的 如果是windows的服务器那么编码问题只能借助于mb_convert_encoding()或者是iconv两个函数相互转换中文编码

           如果服务器是linux的  那么很简单      utf-8: setlocale(LC_ALL, ‘en_US.UTF-8′); 简体中文:setlocale(LC_ALL, ‘zh_CN");

           下面来说csv导出步骤:

          

    $result = mysql_query("select * from student order by id asc"); 
    $str = "姓名,性别,年龄
"; 
    $str = iconv("utf-8","gb2312",$str); 
    while($row=mysql_fetch_array($result)){ 
        $name = iconv("utf-8","gb2312",$row["name"]); //中文转码 
        $sex = iconv("utf-8","gb2312",$row["sex"]); 
        $str .= $name.",".$sex.",".$row["age"]."
"; //用引文逗号分开 
    } 
    $filename = date("Ymd").".csv"; //设置文件名 
    export_csv($filename,$str); //导出 
    要将数据导出到本地即下载,需要修改header信息,代码如下:
    function export_csv($filename,$data) { 
        header("Content-type:text/csv"); 
        header("Content-Disposition:attachment;filename=".$filename); 
        header("Cache-Control:must-revalidate,post-check=0,pre-check=0"); 
        header("Expires:0"); 
        header("Pragma:public"); 
        echo $data; 
    } 




声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。