• PHP读取Excel类文件


      想要使用PHP读取Excel文件必然要用到PHPExcel开源类库,网上资源应该挺多的。但是每一种的操作必然都是不同的,可原理应该都是大同小异。

    这个文件夹里包含的就是PHPExcel类文件,在外面还有一个入口PHP文件

    处理机制: 1.读取Excel文件

            2.获取最大行号和最大列号

                 3.通过行数循环里面嵌套列数循环来用特殊符号拼接每个小表格里面的数据得到一个字符串

            4.然后使用explode拆分函数将字符串拆分后就得到了一个二维数组(即表格里面的数据)。

             代码示例

    $path = "/wamp/www/xiong/hadf";
            if(is_dir($path)){
                echo "存在";
            }else{
                mkdir($path, 0777, true);
                echo "chuangji";
            }
            require_once"./PHPExcel.php";
            $filePath = "./1233.xlsx";
            $PHPReader = new PHPExcel_Reader_Excel2007();
                        if(!$PHPReader->canRead($filePath)) {
                            $PHPReader = new PHPExcel_Reader_Excel5();
                            if(!$PHPReader->canRead($filePath)) {
                                echo 'no Excel';
                                exit;
                            }
                        }
            $PHPExcel = $PHPReader->load($filePath);
                        /**读取excel文件中的第一个工作表*/
                        $currentSheet = $PHPExcel->getSheet(0);
                        /**取得最大的列号*/
                        $allColumn = $currentSheet->getHighestColumn();
                        // echo $allColumn;exit;
                        /**取得一共有多少行*/
                        $allRow = $currentSheet->getHighestRow();
                        /**从第二行开始输出,因为excel表中第一行为列名*/
                        $val = '';
                        for($currentRow = 1; $currentRow <= $allRow; $currentRow++) {
                        /**从第A列开始输出*/
                            for($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) {
                                $val .= $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow);//->getValue();/**ord()将字符转为十进制数*/
                                $val .= "&%|%&";
                                /**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将GBK编码转为UTF-8编码输出*/
                                //$val .= iconv('GBK','UTF-8', $val);
                            }
                            $val .= "
    ";
                            
                        }$member_info_arr = explode("
    ", $val);
                        unset($member_info_arr[count($member_info_arr) - 1]);
                        $present_time = date("Y-m-d H:i:s");
                        if(count($member_info_arr) <= 0) {
                            sys_msg_json(0, "会员信息文件中无数据,请添加");
                        }
                        unset($member_info_arr[0]);
                        // var_dump($member_info_arr);exit;
                        foreach ($member_info_arr as $key => $val) {
                            $arr[$key] = explode("&%|%&",$val);
                        }
                        // var_dump($arr);exit;
                        foreach ($arr as $key => $val) {
                            unset($arr[$key][2]);
                        }
                        var_dump($arr);
  • 相关阅读:
    SVN增加文件后,文件无法自动包括在项目中的原因
    关于浏览器和IIS基础的简单理解
    关联查询之速度优化
    <>这个符号表示泛型的意思
    傅里叶变换
    distinct和group by的性能比较
    VS2010 代码前出现虚线
    SQL的 like 中间字符通配 用法
    模态对话框中的window.close关闭时会打开新页面
    最大差值
  • 原文地址:https://www.cnblogs.com/xionghao/p/6855502.html
Copyright © 2020-2023  润新知