Php 使用Yii导出Excel

Php 使用Yii导出Excel,php,excel,yii,Php,Excel,Yii,我是Yii的新手。我正在做一个场景导出到Excel选项。我已经完成一半了。将在必要字段中填充这些值。但是如果存在空值,Excel中的单元格将获取下一列的值,因此会发生不匹配,因此如何在Excel导出中执行空白单元格 if(!empty($cmApprRes)){ foreach($cmApprRes as $log){ $arrData[$i][]=CHtml::encode($log

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

    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
                    {

                    }

提前谢谢。

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

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

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

如果您试图通过自己编写解决方案来解决Excel导出需求,那么我建议您避免重新发明轮子(除非完全必要或出于某种原因需要),而是使用第三方库。您可以使用yiiBasicXls()。 它的使用非常简单:

安装

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

用法

XlsExporter组件就位后,您只需:

  • 搜索要创建Xls文件的任何数据
  • 使用正确的参数调用downloadXls函数:
    • filename
      :将用作输出文件名名称的字符串。无需附加“.xls”,因为默认情况下会添加它。(必选)
    • 数据
      :活动记录数据集(必需)
    • 标题
      :将 用作显示在导出行顶部的标题。默认为 错
    • 标题
      :显示/隐藏标题的布尔值。默认为false
    • 字段
      :要导出的字段数组。默认为false
    • 类型
      :解释为最终用户导出的内容(使用复数)的字符串,如“用户”、“汽车”等。默认为“行”
示例

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

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

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');
}