zoukankan      html  css  js  c++  java
  • php Excel导出id

    <form action="{:U('Index/files')}" method="post" enctype="multipart/form-data">
                <label for="file">Filename:</label>
                <input type="file" name="file" id="file"/>
                <br/>
                <input type="submit" name="submit" value="Submit"/>
            </form>
    
     public function files(){
                $filename = $_FILES['file']['name'];
                $ext = preg_split("/./", $filename);
                $ext = strtolower($ext[1]);
                /*
                * 获取文件后缀名
                */
                $allowed_types = array("xls", "xlsx");
                $filePath = "./Public/excel/" . $_FILES["file"]["name"];
    //            print_r($filePath);die;
    
                if (!in_array($ext, $allowed_types)) {
                    echo "File type is wrong!";
                    die;
                }
    //            else if (file_exists($filePath)) {
    //                echo "A file with this name already exists!";
    //                die;
    //            }
                else {
                    move_uploaded_file($_FILES["file"]["tmp_name"], $filePath);
                }
                /**
                 * @param $val
                 * @return string
                 * 检查文件名是否符合要求,如果符合,就保存到指定路径。如果不符合,报错。
                 */
    //            import("Org.Util.PHPExcel");
                require_once  "./ThinkPHP/Library/Org/Util/PHPExcel/Classes/PHPExcel.php";
    //$filePath=$_FILES["file"]["tmp_name"];
    //sleep(50);
                $PHPExcel = new PHPExcel();
    //默认用excel2007读取excel,若格式不对,则用之前的版本进行读取
                $PHPReader = new PHPExcel_Reader_Excel2007();
                if (!$PHPReader->canRead($filePath)) {
                    $PHPReader = new PHPExcel_Reader_Excel5();
                    if (!$PHPReader->canRead($filePath)) {
                        return $this->error(null, "no file");
                    }
                }
                $PHPExcel = $PHPReader->load($filePath);
                $sheetCount = $PHPExcel->getSheetCount();
                $sheetNames = $PHPExcel->getSheetNames();
    //var_dump($sheetNames);
    //die;
                /**读取excel文件中有多少个sheet*/
                $objExcel = array();
                for ($SheetID = 0; $SheetID < $sheetCount; $SheetID++) {
                    /**读取excel文件中的工作表*/
                    $name = $sheetNames[$SheetID];
                    $currentSheet = $PHPExcel->getSheetByName($name);
                    $name = iconv("utf-8", "gb2312", $name);
                    /**取得最大的列号*/
                    $allColumn = $currentSheet->getHighestColumn();
                    /**取得一共有多少行*/
                    $allRow = $currentSheet->getHighestRow();
                    for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) {
                        /**从第A列开始输出*/
                        for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) {
                            $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65, $currentRow)->getValue();
                            $val = iconv("utf-8", "gb2312", $val);
                            $objExcel[$name][$currentRow - 1][ord($currentColumn) - 65] = $val;
                            //编码需要转换成gb2312
                            /*
                            $val = urlencode($val);
                            $objExcel[$name][$currentRow - 1][ord($currentColumn) - 65] = urldecode($val);
                            */
                        }
                    }
                }
    
                unlink($filePath);
                /*
                * $objExcel = json_encode($objExcel);
                * $objExcel = urldecode($objExcel);
                * 读取文件中的内容,因为json_encode()的参数必须是utf-8编码。为了保证汉字输出的结果,这里先将数组中的内容用urlencode进行编码,
                * 在被json_encode()编码之后,再用urldecode解码。
                */
    //return $objExcel;
    //            print_r($objExcel);
                foreach ($objExcel as $k=>$v){
                    //取出里面的id拼接成新的一维数组
                    $result = array_reduce($v, 'array_merge', array());
                    //过滤掉里面的空值取出id
                   $id = array_filter($result);
                  
    
    
    
                }
    
            }
    

      

  • 相关阅读:
    P2711 小行星 最小割
    bzoj2141: 排队 cdq分治
    bzoj 4237: 稻草人 cdq分治
    P1527 [国家集训队]矩阵乘法 整体二分
    P2617 Dynamic Rankings 整体二分
    P3834 【模板】可持久化线段树 1(主席树) 整体二分
    SPREAD for Windows Forms 代码片段
    PHP+Oracle Instant Client
    SQL利用CASE按分组显示合计
    SPREAD for Windows Forms 控制输入法
  • 原文地址:https://www.cnblogs.com/dalaowang/p/11056691.html
Copyright © 2011-2022 走看看