• PHPExcel 读取excel2003,2007各个版本整理


    PHPExcel 读取excel2003,2007各个版本整理

     

    最近在做一个php读取excel存入数据库的功能,于是用到了phpexcel,下载安装以后只能读取excel2003,2007以后的读取不了,搜了很多很多方法,也用了不少时间,最后总结一下吧,希望帮助以后像我这样的新手

    首先读取2007的时候 一直没法load文件,最后发现好像是,没有读取权限吧?

    说说解决方法吧

    1. 设置php.ini里面的open_basedir,把前面的;去掉,也就是取消注释

    这时又报错了:PHPExcel 报 Allowed memory size of 8388608 byte

    解决方法:

    使用 phpExcel 报 Allowed memory size of 8388608 bytes exhausted 错误,原因是php页面消耗的最大内存默认是为 8M (在PHP的ini件里可以看到) ,如果文件太大 或图片太大 在读取的时候 会发生上述错误。

    解决办法:

    ‍1,修改 php.ini
    将memory_limit由 8M 改成 16M(或更大),重启apache服务

    2,在PHP 文件中 加入 ini_set(‘memory_limit’,’100M’); //100不行就写10000 测试一下

    注意:为了系统的其它资源的正常使用 请您不要将 memory_limit设置太大,其中-1为不限

    3,修改.htaccess 文档(前提是该目录支持.htaccess)
    在文档中新增一句:php_value memory_limit 16M(或更大)

    下面是一个测试页面:

    <?php
    ini_set(‘memory_limit’,’200M’); //设置文件上传大小
    require_once ‘Classes/PHPExcel/IOFactory.php';
    $reader = PHPExcel_IOFactory::createReader(‘Excel2007′); // 读取 excel 文件方式 此方法是读取excel2007之前的版本 excel2007 为读取2007以后的版本 也可以查ClassesPHPExcelReader 文件夹中的类(为所有读取类,需要哪个填上哪个就行)
    $resource = ‘test.xlsx';
    if (!file_exists($resource)) {
    exit(“$resource is not exists. ”);
    }
    $PHPExcel = $reader->load(“test.xlsx”); // 文件名称
    $sheet = $PHPExcel->getSheet(0); // 读取第一个工作表从0读起
    $highestRow = $sheet->getHighestRow(); // 取得总行数
    $highestColumn = $sheet->getHighestColumn(); // 取得总列数
    echo $highestRow.$highestColumn;
    // 根据自己的数据表的大小修改
    $arr = array(1=>’A’,2=>’B’,3=>’C’,4=>’D’,5=>’E’,6=>’F’,7=>’G’,8=>’H’,9=>’I’,10=>’J’,11=>’K’,12=>’L’,13=>’M’, 14=>’N’,15=>’O’,16=>’P’,17=>’Q’,18=>’R’,19=>’S’,20=>’T’,21=>’U’,22=>’V’,23=>’W’,24=>’X’,25=>’Y’,26=>’Z’);

    // 每次读取一行,再在行中循环每列的数值
    for ($row = 1; $row <= $highestRow; $row++) {
    for ($column = 1; $arr[$column] != ‘D'; $column++) {
    $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();
    $list[$row][] = $val;
    }
    }
    echo “<pre>”.print_r($list).”</pre>”;

    ?>

  • 相关阅读:
    [NPM] Avoid Duplicate Commands by Calling one NPM Script from Another
    [Algorithm] Dynamic programming: Find Sets Of Numbers That Add Up To 16
    [React] Refactor a Class Component with React hooks to a Function
    [Algorithm] Construct a Binary Tree and Binary Search
    设计模式(装饰者模式)
    IOS设计模式之二(门面模式,装饰器模式)
    IOS设计模式之三(适配器模式,观察者模式)
    linux内核源码阅读之facebook硬盘加速flashcache之五
    IOS设计模式之四(备忘录模式,命令模式)
    DRP总结
  • 原文地址:https://www.cnblogs.com/shsgl/p/4452918.html
Copyright © 2020-2023  润新知