微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

phpexcel – 条件格式在保存时丢失

我正在尝试创建一个简单的设置来加载模板,插入一些数据并保存为新文件.然而,我需要一些条件格式化的一些单元格,当我得到新创建的文件条件格式化缺失.它不会被某些其他格式化覆盖,条件格式菜单中缺少规则.我使用 PHP 5.2,PHPExcel 1.7.8和Excel 2010.
<?PHP
class template {
    static $objPHPExcel;
    function __construct() {
        define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
        require_once '../Classes/PHPExcel/IOFactory.PHP';
        if (!file_exists("template.xlsx")) {
            exit("template missing." . EOL);
        }
        echo date('H:i:s')," Load from Excel2007 file",EOL;
        $objReader = PHPExcel_IOFactory::createReader('Excel2007');
        $objReader->setReadDataOnly(false);
        self::$objPHPExcel = $objReader->load("template.xlsx");
    }
    function insertdata($dataArray){ /* unused */ }
    function save($name){
        define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
        require_once '../Classes/PHPExcel/IOFactory.PHP';
        echo date('H:i:s')," Write to Excel2007 format",EOL;
        $objWriter = PHPExcel_IOFactory::createWriter(self::$objPHPExcel,'Excel2007');
        $objWriter->save($name);
        echo date('H:i:s')," File written to: ".$name,EOL;
    }
$temp=new template();
$temp->save("savethis.xlsx");

我试图保留一个分级2颜色比例(基于单元格的格式,最小值是Number = 1,Maximum is type Number = 10).所涉及的单元格具有引用另一个工作表的所有公式(所有数据都已正确保存).

我发现,从原始文件获取自动过滤器”,“数据验证”和“条件格式”的XLS / XLSX文件,我发现无法阅读,修改和保存,我发现的最终解决方案是使模板使用PHPExcel库.

可悲的是,正如另一个答案(https://stackoverflow.com/a/13172890/218418)所述:

PHPExcel is not a library for “editing” workbook files: you’re not using PHPExcel to change a file,you’re changing a PHPExcel object that can be loaded from a file,and can subsequently be written to a file.

我很开心,像“编辑”一个Excel文件,使用模板只是数据验证,条件格式化和自动过滤是不可能的,但我明白.

原文地址:https://www.jb51.cc/php/132180.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐