PHP -- Yii框架扩展CGridView添加导出excel/csv文件功能
2017-12-17 22:13:39
•
阅读
打赏
本文主要介绍了PHP -- Yii框架扩展CGridView添加导出excel/csv文件功能的方法,结合具体实例代码详细的分析了Yii框架扩展组件实现导出excel文件的具体步骤。
Yii扩展提供的CGridView组件没有数据导出文件功能,需要我们修改该组件来添加这个功能。
方法如下:
1、在视图的init函数中判断控制器是浏览动作还是数据导出文件动作,如果是浏览动作则保持默认行为,否则输出excel文件。
public function init()
{
if ($this->action == 'export') {
parent::init();
$this->genExcel();
} else {
parent::init();
}
}
2、输出文件下载响应头:
protected function genExcel()
{
header("Content-Type: application/octet-stream; charset=UTF-8");
header('Content-Disposition: attachment; filename="' . $this->fileName . '"');
//这里写输出文件二进制数据的代码
flush();
}
3、在表格控件上添加一个excel导出按钮
修改renderItems()
方法如下:
public function renderItems()
{
if (Yii::app()->user->checkAccess('administrator')) {
echo '<div class="toolBar">';
echo '<form action="' . CHtml::normalizeUrl(array($this->action)) . '&id=' . $this->id . '" method="post">';
foreach ($this->getController()->getActionParams() as $name => $value) {
echo '<input type="hidden" name="' . addcslashes($name, '"') . '" value="' . addcslashes($value, '"') . '" />';
}
echo '<input type="image" title="' . Yii::t('ifCMS', '导出EXCEL') . '" src="' . Yii::app()->theme->BaseUrl . '/images/ico-excel.png" alt="提交">';
echo '</form>';
echo '</div>';
}
parent::renderItems();
}
上述第2步excel输出函数中的header设置语句之前不要有任何的输出,包括如下函数:
print
, echo
, printf
, trigger_error
, vprintf
, ob_flush
, var_dump
, readfile
, passthru
否则内容只会在浏览器中输出,不会出现文件下载。
以上就是本文PHP -- Yii框架扩展CGridView添加导出excel/csv文件功能的全部内容了,希望对大家的PHP程序设计有所帮助。
相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型