使用CakePHP 2.x生成Excel文件时文件损坏

时间:2015-02-20 14:07:30

标签: php cakephp phpexcel cakephp-helper

我正在尝试使用CakePHP 2.5.4将我的数据库信息导出到Excel。但是,Excel无法打开生成的文件myfilename.xlsx。给出的错误是:"文件格式或文件扩展名无效。验证文件是否已损坏,文件扩展名是否与文件格式相符"。

我使用以下代码搜索控制器中的数据并导出到Excel:

<?php
$this->PhpExcel->createWorksheet(); 
$this->PhpExcel->setDefaultFont('Calibri', 12); 

// define table cells 
$table = array( 
    array('label' => __('Name'), 'width' => 'auto', 'filter' => true), 
    array('label' => __('Email'), 'width' => 'auto'), 
    array('label' => __('Second Email'), 'width' => 'auto'), 
    array('label' => __('Third Email'), 'width' => 'auto'),  

); 

// heading 
$this->PhpExcel->addTableHeader($table, array('name' => 'Cambria', 'bold' => true)); 

// data 
foreach ($data as $d) { 

    //if($d['Applicant']['name'] != '(NO BORRAR!!!!!)'){
        $this->PhpExcel->addTableRow(array( 
            $d['Applicant']['name'],
            $d['Applicant']['mail'],
            $d['Applicant']['mail2'],
            $d['Applicant']['mail_mother']
        )); 
    //}
} 

$this->PhpExcel->addTableFooter(); 
$this->PhpExcel->output(); 
exit;
?>

有人能说出解决方法吗?

1 个答案:

答案 0 :(得分:0)

  

Excel无法打开文件'filename.xlsx',因为的文件格式    文件扩展名无效。验证文件是否    已损坏且文件扩展名与文件格式相符。

但是,此错误消息不仅限于用户通过电子邮件获取的Excel文件。相反,它也常常遇到常用文件。您可能会发现,当您尝试打开它时,他们长时间工作的Excel工作簿会突然开始抛出此错误消息。

要找出与此错误消息相关联的唯一编号,请同时按“CTRL + SHIFT + I”。之后,除了错误消息之外,您还会得到以下数字:

  

“101590”

在以下情况下遇到此错误消息:

<强>原因:

  1. 该文件与使用的Excel版本不兼容。
  2. 他的档案已腐败。
  3. 解决方案:您可以尝试以下提及的解决方案来纠正此错误消息并重新获得对Excel工作表的访问权。

    更改Excel工作表的文件扩展名:

    有时会出现问题,原因是Excel文件的文件扩展名不受支持。要检查xlsx扩展的支持,请转到“我的电脑”。浏览'工具&gt;&gt;文件夹选项&gt;&gt;文件类型'。检查是否包含'xlsx'扩展名。如果没有,则重命名此文件并将“.xlsx”更改为“.xls”。

    enter image description here

    使用MS Excel的“打开并修复”选项:

    为此,打开Excel,然后转到'文件&gt;&gt;打开'。选择要打开的文件,但不要双击它。转到“打开”对话框中提供的“打开”下拉列表,然后从那里选择“打开并修复”选项。此过程修复损坏的Excel工作表并正常打开它。

    enter image description here

    Excel恢复软件:

    如果上述决议都不能满足您的要求,建议使用Excel修复软件。 Stellar Phoenix Excel Repair就是这样一款软件。它修复损坏的Excel工作表并恢复存储在其中的整个数据,而不会更改其原始格式。

      

    您可以尝试上述任何一种解决方案来纠正此问题   错误消息:但是,Excel修复软件最适合   其他两种方法无法满足你的情况。