zoukankan      html  css  js  c++  java
  • php composer phpexcel

    #用于excel表格
    function getColKeys($index)
    {
        $index = (int)$index;
        if ($index <= 0) return; //输入检测
        $dimension = ceil(log(25 * $index + 26, 26)) - 1;  //算结果一共有几位,实际算的是位数减1,记住是26进制的位数
        $n = $index - 26 * (pow(26, $dimension - 1) - 1) / 25; //算结果在所在位数总数中排第几个
        $n--; //转化为索引
    
        return str_pad(
            str_replace(
                array_merge(range(0, 9), range('a', 'p')),
                range('A', 'Z'),
                base_convert($n, 10, 26)
            ),
            $dimension,
            'A',
            STR_PAD_LEFT
        ); //翻译加补齐
    }

    composer require phpoffice/phpexcel 1.8.2  导入插件

    require_once($_SERVER['DOCUMENT_ROOT'] . '/../vendor/phpoffice/phpexcel/Classes/PHPExcel.php');
    require_once($_SERVER['DOCUMENT_ROOT'] . '/../vendor/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php');
    $objPHPExcel = new PHPExcel();

    // 实例化完了之后就先把数据库里面的数据查出来
    $PHPExcel = $objPHPExcel->setActiveSheetIndex(0);

    $paramsColumn = [
    "account"=>'卡号',
    "card_type"=>'类型',
    "user_name"=>'会员姓名',
    "phone"=>'会员手机号',
    "create_time"=>'交易时间',
    "sollerName"=>'销售人员',
    "buy_hour"=>'购买课时',
    "actual_payment"=>'实际付款',
    "TopUpTxt"=>'交易类型',
    "PayMentTermTxt"=>'支付方式',
    "CardTypeTxt"=>'卡种'
    ];
    $getColumn = array_keys($paramsColumn);
    $columnNum = 1;
    foreach ($paramsColumn as $k=>$v) {
    $col = getColKeys($columnNum);
    $PHPExcel = $PHPExcel->setCellValue($col . '1', $v);
    $columnNum += 1;
    }

    $line = 1;
    foreach ($data as $k => $v) {
    $getColumnKey = 1;
    foreach ($getColumn as $val) {
    $col = getColKeys($getColumnKey);
    $objPHPExcel->getActiveSheet()->setCellValue($col . (string)($line + 1), $v[$val]);
    $getColumnKey += 1;
    }
    $line++;
    }



    $objPHPExcel->getActiveSheet()->setTitle('productaccess'); //设置sheet的名称
    $objPHPExcel->setActiveSheetIndex(0); //设置sheet的起始位置
    $PHPWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007");
    ob_start();
    $PHPWriter->save("php://output"); //表示在$path路径下面生成demo.xlsx文件
    $buf1 = ob_get_contents();
    ob_end_clean();
    return base64_encode($buf1);
                            let str = "base65字符串"
                            var blob = dataURLtoBlob(str);
                            var downloadUrl = window.URL.createObjectURL(blob);
                            var anchor = document.createElement("a");
                            anchor.href = downloadUrl;
                            anchor.download = decodeURI('交易记录.xlsx');
                            anchor.click();
       
                        function dataURLtoBlob(base64Str) {
                            var bstr = atob(base64Str), n = bstr.length, u8arr = new Uint8Array(n);
                            while (n--) {
                                u8arr[n] = bstr.charCodeAt(n);
                            }
                            return new Blob([u8arr], { type: "application/vnd.ms-excel" });
                        }
  • 相关阅读:
    ajax获取后台数据,显示到input输入框里面
    js的比较运算符含义和示例和逻辑运算符
    Vue的 on +bind+if +for
    Vue入门例子
    Spring-AOP
    fatal: remote origin already exists git出现这个
    springmvc-文件上传下载
    springmvc-ajax
    查询Id最大的基础上+1
    bootstrap select去掉右边小三角
  • 原文地址:https://www.cnblogs.com/chengfengchi/p/14688957.html
Copyright © 2011-2022 走看看