dbrisinajumi / tlbexcelview
基于PHPExcel的另一个Yii CGridView-to-Excel导出器,基于EExcelView Yii扩展
dev-master
2021-10-26 11:45 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-08-26 17:49:12 UTC
README
基于PHPExcel的另一个Yii CGridView-to-Excel导出器,基于EExcelView Yii扩展
测试于
- Yii 1.1.10
- PHPExcel 1.7.7
主页
http://tellibus.com/lab/tlbExcelView
安装
- 在你的 /protected/extensions 文件夹中创建一个名为 phpexcel 的文件夹
- 从http://phpexcel.codeplex.com/下载PHPExcel
- 将它的 Classes 文件夹解压到你的 /protected/extensions/phpexcel
- 将 tlbExcelView.php 文件复制到你的 widgets 目录中,例如 /protected/components/widgets
功能
- 自动格式化表头、正文和页脚
- 自动格式化数字
- 自动在页脚中求和
- 自动页面格式化(带有页眉和页脚,自动打印区域等)
- 几乎所有属性都可以被覆盖。
使用示例
这是tlbExcelView在控制器和视图中的使用示例
控制器
基于标准的Gii / Giix管理操作
<?php public function actionAdmin() { $model = new Model('search'); $model->unsetAttributes(); if (isset($_GET['Model'])) { $model->attributes = $_GET['Model']; } if (isset($_GET['export'])) { $production = 'export'; } else { $production = 'grid'; } $this->render('admin', array('model' => $model, 'production' => $production)); } ?>
"admin" 视图
<?php Yii::app()->clientScript->registerScript('search', " $('#exportToExcel').click(function(){ window.location = '". $this->createUrl('admin') . "?' + $(this).parents('form').serialize() + '&export=true'; return false; }); $('.search-form form').submit(function(){ $.fn.yiiGridView.update('some-grid', { data: $(this).serialize() }); return false; }); "); ?> … <div class="search-form" style="display:block"> <?php $this->renderPartial('_search', array('model' => $model)); ?> </div><!-- search-form --> … <?php $this->widget('application.components.widgets.tlbExcelView', array( 'id' => 'some-grid', 'dataProvider' => $model->search(), 'grid_mode' => $production, // Same usage as EExcelView v0.33 //'template' => "{summary}\n{items}\n{exportbuttons}\n{pager}", 'title' => 'Some title - ' . date('d-m-Y - H-i-s'), 'creator' => 'Your Name', 'subject' => mb_convert_encoding('Something important with a date in French: ' . utf8_encode(strftime('%e %B %Y')), 'ISO-8859-1', 'UTF-8'), 'description' => mb_convert_encoding('Etat de production généré à la demande par l\'administrateur (some text in French).', 'ISO-8859-1', 'UTF-8'), 'lastModifiedBy' => 'Some Name', 'sheetTitle' => 'Report on ' . date('m-d-Y H-i'), 'keywords' => '', 'category' => '', 'landscapeDisplay' => true, // Default: false 'A4' => true, // Default: false - ie : Letter (PHPExcel default) 'pageFooterText' => '&RThis is page no. &P of &N pages', // Default: '&RPage &P of &N' 'automaticSum' => true, // Default: false 'decimalSeparator' => ',', // Default: '.' 'thousandsSeparator' => '.', // Default: ',' //'displayZeros' => false, //'zeroPlaceholder' => '-', 'sumLabel' => 'Column totals:', // Default: 'Totals' 'borderColor' => '00FF00', // Default: '000000' 'bgColor' => 'FFFF00', // Default: 'FFFFFF' 'textColor' => 'FF0000', // Default: '000000' 'rowHeight' => 45, // Default: 15 'headerBorderColor' => 'FF0000', // Default: '000000' 'headerBgColor' => 'CCCCCC', // Default: 'CCCCCC' 'headerTextColor' => '0000FF', // Default: '000000' 'headerHeight' => 10, // Default: 20 'footerBorderColor' => '0000FF', // Default: '000000' 'footerBgColor' => '00FFCC', // Default: 'FFFFCC' 'footerTextColor' => 'FF00FF', // Default: '0000FF' 'footerHeight' => 50, // Default: 20 'zoomScale' => 75, // Default: 100 'columns' => $grid // an array of your CGridColumns )); ?>
"_search" 视图
<?php $form = $this->beginWidget('GxActiveForm', array( 'action' => Yii::app()->createUrl($this->route), 'method' => 'get', )); ?> … <div class="row buttons"> <?php echo GxHtml::submitButton(Yii::t('app', 'Search')); ?> <?php echo GxHtml::button(Yii::t('app', 'Export to Excel (xls)'), array('id' => 'exportToExcel')); ?> </div> <?php $this->endWidget(); ?>