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();
  • 相关阅读:
    用pyinstaller打包一个exe程序
    Jmeter参数化(_csvread函数、CSV Data Set Config)
    mysql约束
    安全测试整理
    ultraedit 实际应用技巧
    python基础_mysql建表、编辑、删除、查询、更新
    UI测试用例设计,场景测试法
    场景法设计测试用例
    接口测试用例设计
    测试用例总结
  • 原文地址:https://www.cnblogs.com/-mrl/p/7687277.html
Copyright © 2011-2022 走看看