可以說,我有一個名爲數據提供程序來EExcelView
cars{
'id','name','brand_id',
}
表和另一個表
brand{
'id','brand_name',
}
我有我要生成Excel報表具有以下屬性的情況。 'name','brand_name'
即SELECT cars.name, brand.brand_name FROM cars INNER JOIN on brand WHERE cars.brand_id = brand.id
所以我創造了這樣一個數據提供程序:
$sql = "SELECT cars.name, brand.brand_name FROM cars INNER JOIN brand on cars.brand_id = brand.id";
$result = Yii::app()->db->createCommand($sql)->queryAll();
$this->render('doc', array('dataprovider' => $result));
現在我想生成Excel與結果的文件作爲dataProvider
,所以我寫了下面的代碼:
//可以說,我正在做這個查看頁面,名爲doc.php
$factory = new CWidgetFactory();
Yii::import('ext.eexcelview.EExcelView',true);
$widget = $factory->createWidget($this,'EExcelView', array(
'dataProvider'=>$dataprovider->search(),
'grid_mode'=>'export',
'title'=>'Title',
'creator'=>'TNC',
'autoWidth'=>false,
'filename'=>'Report.xlsx',
'stream'=>false,
'disablePaging'=>false,
'exportType'=>'Excel2007',
'columns'=>array(
'name',
'brand_name',),
'showTableOnEmpty' => false,
));
$widget->init();
$widget->run();
我已經包含了所有必需的擴展。。此代碼正在工作,當我喂dataProvider
字段與單表條目。 但情況出現時,我包括多個表。
你知道爲什麼我只能得到10個值嗎?即數據提供者僅反映10個數據。 – TNC
數據提供者的默認值是每十頁分頁。我的答案我已更新如何禁用分頁 – acorncom
我可能有320行和60列..分頁不適用於那些巨大的..它適用於有限的數據表。任何解決方案..? – TNC