zoukankan      html  css  js  c++  java
  • php使用phpexcel导出文件

    php使用phpexcel导出文件

     首先需要去官网https://github.com/PHPOffice/PHPExcel/下载PHPExcel

    代码如下:

    <?php
    date_default_timezone_set('PRC');
    /**
     * 导出提现,充值记录
     * */
    function exportWalletStatAction(){
        $body = [
            [
                'order_id'=>1,
                'money'=>2222,
            ],
            [
                'order_id'=>2,
                'money'=>3333,
            ]
        ];
    
        $head = [['订单号', '金额']];
        $needField = ['order_id','money'];
        $body = filterFiels($body,$needField);
        //导出文件的数据
        $fileName = 'test';
        export($fileName, $head, $body);
    }
    /**
     * 得到需要导出的字段
     * @return string
     */
    function filterFiels($body, $needField)
    {
        if (!is_array($body) || !count(array($body))) {
            $this->export();
        }
        $exportData = [];
        if (is_array($body) && count($body)) {
            foreach ($body as $key => $val) {
                foreach ($needField as $needVal) {
                    if(isset($val[$needVal])){
                        $exportData[$key][$needVal] = $val[$needVal];
                    }
                }
            }
        }
        return $exportData;
    }
    
    /**
     * 处理导出文件
     * @param string $fileName
     * @param string $head
     * @param string $body
     * @param bool $clear
     */
    function export($fileName = '', $head = '', $body = '', $clear = false)
    {
        if (!is_array($body) || !count(array($body)) || empty($body) ) {
            $body = [
                [
                    '没有相关数据'
                ]
            ];
        }
        if (is_array($head) && count($head)) {
            $data = array_merge($head, $body);
        } else {
            $data = $body;
        }
        if (!$fileName) {
            $fileName = date('ymdHis');
        } else {
            if (!$clear) {
                $fileName = $fileName . '_' . date('ymdHis');
            }
        }
        $fileName .= '.xls';
        foreach ($data as $key => $val) {
            foreach ($val as $k => $v) {
                if (strpos($v, '=') === 0) {
                    $val[$k] = "	" . $v;
                    $data[$key] = $val;
                }
            }
        }
        download($data, $fileName);
    }
    
    /**
     * 导出文件
     * @param string $fileName
     * @param string $head
     * @param string $body
     * @param bool $clear
     */
    function download($data, $fileName = 'data.xsl')
    {
        error_reporting(E_ALL ^ E_NOTICE);
        //error_reporting(0);
        //文件引入
        require_once __DIR__ .'/../../../../public/js/phpexcel/Classes/PHPExcel.php';
        require_once dirname(__FILE__) . '/../../../../public/js/phpexcel/Classes/PHPExcel/Writer/Excel2007.php';
        $objPHPExcel = new PHPExcel();
        $objPHPExcel->getActiveSheet()->fromArray($data, null, 'A1');
        $objPHPExcel->getActiveSheet()->setTitle('Sheet1');
        $objPHPExcel->setActiveSheetIndex(0);
        ob_end_clean();
        ob_start();
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="' . $fileName . '"');
        header('Cache-Control: max-age=0');
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
        exit();//调用$objWriter->save('php://output')之后一定要紧跟exit
    }
    exportWalletStatAction();
  • 相关阅读:
    一行代码解析复杂JSON文件:利用Android自带的包解析JSON
    人生的真相
    为我的外婆写上我的挽歌
    总结2016 展望2017
    [转贴]使用CryptoAPI解析X509证书和P12证书
    2015这一年的进步
    怎样在WINDOWS下面编译LIBCURL
    LINQ TO SQL 怎样 执行存储过程并返回存储过程的临时表
    C调用OPENSSL做REST服务客户端的例子
    一个CLI的 的例子
  • 原文地址:https://www.cnblogs.com/-mrl/p/7687277.html
Copyright © 2011-2022 走看看