环境

Steps

  1. 安装好PHPExcel,可以使用composer安装;

  2. 第一个错误是phpzip库没有找到,ZipArchive and lib-zip.dll

    PHPExcel 依赖 lib_zip库,需要在PHP的php.conf文件中打开。PHP5.3+默认有这个库,但是XAMPP TMD居然没有。要看有没有可以打开 XAMPP_ROOT/php/ext/ (in Windows) 文件夹看有没有 lib_zip.dll

    如果没有可以从 官网 下载,拖到 lib_zip.dll 上面的文件夹中。but,好像不行,需要重新编译PHP。

  3. PHPExcel内置的zip库 PCLZIP

    phpexcel 有一个 Pclzip 类,作为 lib_zip 缺失的情况下的备胎,具体可以看( from stackoverflow )

    需要在加载IOFactory方法前 添加一句PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);来切换到内置的zip库。

  4. 路径有问题 Classes/Shared/ZipArchive.php

    但是内置的 Classes/Shared/ZipArchive.php 类有个不兼容Windows路径的错误需要更正一下,在方法 public function getFromName($fileName)(141行)。

    找到的错误是传进来的 $fileName 包含的路径是这样的の xl/_rels/workbook.xml.rels(即使在windows下也是斜线模式,*nix)但是实际在 $list 数组中的却是Windows的反斜线风格 xl\_rels\workbook.xml.rels,斜线和反斜线不匹配,So 问题来了。

    需要在匹配的if判断中添加反斜线的匹配!!!!!!!!!!!!!

# before
if (strtolower($list[$i]["filename"]) == strtolower($fileName) || strtolower($list[$i]["stored_filename"]) == strtolower($fileName)) {
# after
if (strtolower($list[$i]["filename"]) == strtolower($fileName) || str_replace("/", "\u{5c}", strtolower($fileName)) == strtolower($list[$i]["filename"]) || strtolower($list[$i]["stored_filename"]) == strtolower($fileName) || str_replace("/", "\u{5c}", strtolower($fileName)) == strtolower($list[$i]["stored_filename"])) {
# \u{5c} is backslash

还会有一个问题就是 "**Variable contents is not defined", so 再小改一下

# before
if ( is_array($extracted) && $extracted > 0 ) {
$contents = $extracted[0]["content"];
}
return $contents;
#after
$contents = "";
if ( is_array($extracted) && $extracted > 0 ) {
$contents = $extracted[0]["content"];
return $contents;
}
return false;

现在可以在PHP7(Windows)中使用了

make phpexcel working with XAMPP7.0.9的更多相关文章

  1. phpexcel读取输出操作

    //读取 <?php header("Content-Type:text/html;charset=utf-8"); include 'Classes/PHPExcel.ph ...

  2. thinkphp用phpexcel读取excel,并修改列中的值,再导出excel,带往excel里写入图片

    <?php class GetpriceAction extends AdministratorAction { // 文件保存路径 protected $savepath; // 允许上传的文 ...

  3. yii phpexcel <转>

    原文详情参见 这里 1.下载phpexcel,将压缩包中的classes复制到protected/extensions下并修改为PHPExcel. 2.修改YII配置文件config/main.php ...

  4. ThinkPHP导入Excel文件(使用PHPExcel)

    一. 主要知识点,用PHPExcel导入Excel数据经过这几天测试还是可以,xls,xlsx都可以获取Excel的数据.下载地址:http://phpexcel.codeplex.com/ O.开发 ...

  5. YII使用PHPExcel导入Excel文件的方法

    1.下载phpexcel,将压缩包中的classes复制到protected/extensions下并修改为PHPExcel. 2.修改YII配置文件config/main.php 'import'= ...

  6. ThinkPhp 使用PhpExcel导出导入多语言文件

    在ThinkPHP 里已经实现了多语言功能,只要在指定的目录下创建对应的语言文件并填充内容,即可实现多语言功能 而多语言的翻译却是一个很麻烦的事情,因为客户特定的行业问题导致我们翻译可能是不准确的 于 ...

  7. ajax实现下载功能

    ajax实现下载功能 适用场景:由于点击按钮下载excel响应时间过长,此时间段加入加载样式(灰色层.加载动画): 浏览器弹出下载框后,上面的加载样式去掉.  方     法 :使用jquery.fi ...

  8. php 导出excel文件

    out_excel.php <?phperror_reporting(E_ALL);date_default_timezone_set('Asia/Shanghai');require_once ...

  9. 数据库导入Exel,输入到浏览器

    db.php <?php require dirname(__FILE__)."/dbconfig.php";//引入配置文件 class db{ public $conn= ...

随机推荐

  1. Apache配置过程

    要在一台主机上搭建多个网站,最简单的办法就是给不同的网站分配不一样的端口.下面我以Ubuntu 14.04 + Apache 2.4.7为例说一下在搭建过程中的一些注意事项. 1. 主配置文件是/et ...

  2. C++11新特性——初始化列表 initializer_list

    破事水: 由于最近数据结构有个实验报告说是要对字符串进行排序,想偷个懒不想一个一个地赋值,虽然可以用strcpy和传入二级指针的形式直接写,但是这样感觉不美观漂亮. 然后就去膜了一下C++11的新特性 ...

  3. win 10 常见问题

    Microsoft Edge Can't Open Local Domains IE Edge浏览器打不开本地站点 解决方法:解决方法

  4. 关于datagridview里使用combox的总结

    最近写的程序中需要在DataGridView中使用下拉选择的功能,首选方案是列的ColumnType属性 使用EditingControlShowing事件, if (e.Control is Com ...

  5. 读取java目录中相同目录、相同名称的文件

    使用ClassLoader的getResources方法(注意,不是getResource,少了s),可获得指定文件的包含jar包名称的多个路径值,然后依次读取文件即可. 使用class,只能通过ge ...

  6. QuicKHit

    public class Level { private int levelNo;// 各级别编号 private int strLength;// 各级别一次输出字符串的长度 private int ...

  7. Chrome 控制台使用大全

    Chrome的开发者工具已经强大到没朋友的地步了,特别是功能丰富界面友好的console 一.console.log 将输出到控制台的信息进行分类会更好: console.log();    普通信息 ...

  8. html中submit和button的区别/ window.location.href 不跳转 的问题

    <input type="button">  <input type="submit"> 这两个的区别 是 button 不会自动提交表 ...

  9. 使用postman发送数据并构建collections执行测试

    1.安装 下载地址:https://www.getpostman.com/.直接安装,成功后在chorme的应用程序中会多出一个Postman.如果无法在google store上直接安装,可以下载. ...

  10. php面试题

    1.用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分) <?php date_default_timezone_set('Asia/shanghai'); echo d ...