使用Yii导出Excel

时间:2014-06-04 04:54:15

标签: php excel yii

我是Yii的新手。我正在做一个导出到Excel选项的方案。我已经过了一半。这些值将填入必要的字段中。但是,如果存在Empty值,则Excel中的单元格将获取下一列值,因此发生不匹配,因此如何在Excel Export中执行空白单元格。

    if(!empty($cmApprRes)){
                        foreach($cmApprRes as $log){
                            $arrData[$i][]=CHtml::encode($log->cm_log_description);
                        }
                    }

                    else
//if there is no data in the log table the corresponding column should be shown as blank.
//but that is not working please suggest an option for else
                    {

                    }

提前致谢。

2 个答案:

答案 0 :(得分:0)

这是固定的。对不起,这是一个简单的步骤。

if(!empty($cmApprRes)){
                        foreach($cmApprRes as $log){
                            $arrData[$i][]=CHtml::encode($log->cm_log_description);
                        }
                    }

                    else
                    {
$arrData[$i][]="";
                    }

答案 1 :(得分:0)

如果您正在尝试通过自己编写解决方案来解决Excel - 导出需求,那么我建议避免重新发明轮子(除非完全必要或出于某种原因需要)并使用第三个派对图书馆。您可以使用 yiiBasicXls https://github.com/faustow/yiiBasicXls)。 它使用起来非常简单:

<强>安装

下载XlsExporter.php并将其移至您自己的Yii应用程序中的/ protected / components /。

<强>用法

一旦XlsExporter组件到位,您只需要:

  • 查找您要创建关于
  • 的Xls文件的任何数据
  • 使用正确的参数调用downloadXls函数:
    • filename:将用作输出文件名的名称的字符串。无需附加&#39; .xls&#39;因为它将默认添加。 (必需)
    • data:活动记录数据集(必填)
    • title:将成为的字符串 用作显示在导出行顶部的标题。默认为 假的。
    • header:显示/隐藏标题的布尔值。默认为false。
    • fields:要导出的字段数组。默认为false。
    • type:字符串,用于说明为最终用户导出的内容(使用复数形式),例如&#39;用户&#39;汽车&#39;等。默认为&#39;线&#39;

示例

例如(在某些控制器上):

public function actionDownloadReport() {
    $fields = array('email', 'firstName', 'lastName', 'type');

    $criteria = new CDbCriteria();
    $criteria->select = $fields;
    $criteria->condition = "firstName = 'John'";
    $criteria->order = 'lastName';
    $users = users::model()->findAll($criteria);

    XlsExporter::downloadXls('report', $users, 'List of users called John', true, $fields, 'users');
}

一旦到位,调用yoursite.com/somecontroller/downloadReport将触发浏览器中xls文件的下载。