zoukankan      html  css  js  c++  java
  • phpExcel与jq的ajax

    有时我们的需求总会出现一些自己觉得很奇怪的需求,

    但如果效果出来了,又觉得很新颖,然后这些新颖的

    东西,就是这些奇怪的需求而来的,所以别对自己不能

    的事情觉得不应该有,而是挑战它,用自己所懂得语言

    完成它。

    xls格式的文件在页面展示就是一个感觉就是前端无法实现的活,但

    却可以实现,只是它需要后台帮忙转换,应该数据流在前端无法被转换

    成我们所需的数据结构。

    php:

    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    date_default_timezone_set('Europe/London');
    define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
    
    /*上传*/
    //文件存放的路径
    $save_path = "./upload/";
    
    //文件存放的文件夹
    $save_files = geturl();
    //PHP_OS 系统  getcwd() 获取当前工作目录
    //
    function geturl()
    {
        $arr=array();
        $year = date('Y');
        $month= date('m');
        $day= date('d');
    
        $str = $year.$month.$day;
        if(strtoupper(substr(PHP_OS,0,3))=='WIN'){
            $path = getcwd() . "/upload/".$str;
        }else{
            $path = "/mnt/erp/".$str;
        }
        if(!file_exists($path))//判断文件夹是否存在
        {
            mkdir($path,0777,true);
        }
        array_push($arr,$str."/");
        array_push($arr,$path."/");
        return $arr;
    }
    $file_name = $save_files[1].$_FILES["file"]["name"];//获取上传文件的地址名称
    $file_path=$save_path.$save_files[0].$_FILES["file"]["name"];
    if(!@move_uploaded_file($_FILES["file"]["tmp_name"],$file_name)){
        echo "error|上传文件错误.";
        exit(0);
    }
    
    include_once('.PHPExcel-1.8classesPHPExcel.php');
    include_once('.PHPExcel-1.8classesPHPExcelIOFactory.php');
    include_once('.PHPExcel-1.8classesPHPExcelCell.php');
    /*echo date('H:i:s') , " Create new PHPExcel object" , EOL;*/
    
    $objReader = PHPExcel_IOFactory::createReader('excel2007');//建立reader对象
    $objPHPExcel = $objReader->load($file_path);
    
    $sheet = $objPHPExcel->getSheet(0);
    $highestRow = $sheet->getHighestDataRow(); // 取得总行数
    
    $highestColumn_num = PHPExcel_Cell::columnIndexFromString($sheet->getHighestDataColumn());//列数
    
    //$columns = (new PHPExcel_Cell())->getColumn($highestColumn_num);
    $allColumns = array('A','B','C','D','E','F','G');
    $columns = array();
    for($i =0;$i < $highestColumn_num;$i++){
        $columns[$i]=$allColumns[$i];
    }
    $arr_result = array();
    $dealer_element = array();
    for ($j = 1; $j <= $highestRow; $j++) {
    for ($k = 0; $k < count($columns); $k++) {
    //读取单元格
    $value = $objPHPExcel->getActiveSheet()->getCell($columns[$k] . $j)->getValue();//这个就是获取每个单元格的值
    
    $value = trim($value);
    if (empty($value)) {
    $value = NULL;
    }
    $dealer_element[$k] = $value;
    //这里可以根据要求,做一些数据的验证
    }
    
    array_push($arr_result,$dealer_element);
    }
    echo json_encode($arr_result);

    html,js:

    <html>
    <body>
    <form name="form" id="form">
        <input type="file" name="file" id="file" /> 
        <input type="button" id="submit" value="Submit" />
    </form>
    <div id="div"></div>
    <script src="./jquery.js"></script>
    <script>
    var oSubmit=$("#submit"),oFile=$("#file");
    var form=document.forms.form;
    
    oSubmit.click(function(){
        /*因为jquery的ajax对FormData转换成表单数据会拒绝
        错误代码:illegal invocation
        所以需要设置参数
        contentType:false,
        cache: false,
        processData:false,
        */
        var formData=new FormData($("#form")[0]);
        $.ajax({
            url:"./index.php",
            type:"post",
            contentType:false,
            cache: false,
            processData:false,
            data:formData,
            success:function(rps){
                console.log(rps);
                tableHtml(JSON.parse(rps));
            }
        });
        return false;
    });
        
    function tableHtml(objArr){
        var oTable=$("<table border='1'>");
        var oTr,oTd;
        for(var i=0;i<objArr.length;i++){
            oTr=$("<tr>");
            for(var j=0;j<objArr[i].length;j++){
                oTd=$("<td>").html(objArr[i][j]?objArr[i][j]:"");
                oTr.append(oTd);
            }
            oTable.append(oTr);
        }
        $("#div").append(oTable);
    }
    </script>
    
    </body>
    </html>

    jquery-ajax:问题

  • 相关阅读:
    Windows7,Ubuntu双系统,用MBR引导
    把Adblock Plus的过滤规则应用到IE9
    Linux shell学习
    vxworks下面网络连接调试的搭建
    uboot网卡成功识别
    uboot功能扩展篇
    uboot终于显示串口信息了
    uboot解决flash failed无限挂起的问题
    问题解决随笔
    琐事皆休,开始找工作~
  • 原文地址:https://www.cnblogs.com/zhangzhicheng/p/6847619.html
Copyright © 2011-2022 走看看