PHP鏈式操作輸出excel(csv),鏈式csv_PHP教程

來源:互聯網
上載者:User

PHP鏈式操作輸出excel(csv),鏈式csv


工作中經常會遇到產品運營讓匯出一些簡單的比較規範的資料,這時候要是有一個簡單的方法可以用就簡單多了。下面是我的一個輸出簡單的excel(csv)的方法類,用到了鏈式操作。說到鏈式操作,在jquery中可能經常用到,是不是也感覺到鏈式操作用起來很爽,我們也在這個類中實現下鏈式操作。

其實鏈式操作很簡單的,就是在前一個類方法最後返回一個該類的對象($this),提供給下一個方法調用。

phpclass Array2csv{    /*     *@var string $ext 副檔名      */    private $ext = 'csv';    /**      * @desc構造方法     * @param string $filename 要輸出的檔案名稱     * @param string $ext 副檔名     */    public function __construct($filename,$ext=null){        ob_start();        header("Content-type: text/html;charset=utf-8");        header("Content-type: application/x-csv");        if(PHP_SAPI == 'cli') echo "CLI模式下不能匯出csv檔案\r";        $this->ext = $ext === null ? $this->ext : $ext;        header("Content-Disposition: attachment;filename=".$filename.".".$this->ext);        ob_flush();        return $this;    }    /**      * @desc 列印excel標題     * @param array $title 要輸出的標題列     * @param object Array2csv 對象本身     */        public function title($title){        $title = implode(",", $title);        echo $title."\n";        return $this;    }    /**      * @desc 列印一行excel內容     * @param array $body 要輸出的內容     * @param object Array2csv 對象本身     */        public function body($body){        if(!is_array($body) || empty($body)) {            return false;        }        $body = implode(",", $body);        echo $body."\n";        return $this;    }    /**      * @desc 列印多行excel內容     * @param array $bodyArr 要輸出的多行內容     * @param object Array2csv 對象本身     */        public function multiBody($bodyArr){        if(!is_array($bodyArr) || empty($bodyArr)) return false;        foreach ($bodyArr as $key => $value) {            if(is_array($value)){                $value = implode(",", $value);                echo $value."\n";            }        }        return $this;    }}$test = new Array2csv('test');$arr = array(    array('luluyrt@163.com','奔跑的Man1','奔跑的userman'),    array('luluyrt@163.com','奔跑的Man2','奔跑的userman'),    array('luluyrt@163.com','奔跑的Man3','奔跑的userman'),    array('luluyrt@163.com','奔跑的Man4','奔跑的userman'),    array('luluyrt@163.com','奔跑的Man5','奔跑的userman'),    array('luluyrt@163.com','奔跑的Man6','奔跑的userman'));$test->title(array('測試','呵呵','哈哈'))->body(array('100,sadkl','sdsas','sdvsvdd分'))->multiBody($arr);

輸出的csv如所示:

$link = mysqli_connect($host, $user, $passwd, $db);mysqli_query($link, "set names utf8");

進行編碼轉換方可正常顯示,下面是我的資料庫資訊和編碼前後效果:

資料庫資訊

設定資料庫編碼前後的對比

send Me~

http://www.bkjia.com/PHPjc/924354.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/924354.htmlTechArticlePHP鏈式操作輸出excel(csv),鏈式csv 工作中經常會遇到產品運營讓匯出一些簡單的比較規範的資料,這時候要是有一個簡單的方法可以用就...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.