SimpleExcel.php
[Pman.Core] / SimpleExcel.php
index 113f806..6f14dea 100644 (file)
@@ -239,7 +239,16 @@ class Pman_Core_SimpleExcel extends Pman
         if (empty($data)) {
             return;
         }
+        $data_ar = $data;
         
+        if (is_object($data)) {
+            $data_ar = array();
+            $data->find();
+            while($data->fetch()) {
+                $hasRenderRow = $this->addLine($cfg['workbook'], $clo);
+                $hasRender = ($hasRender  || $hasRenderRow) ? true : false;
+            }
+        }
         
         foreach($data as $r=>$clo) {
             $hasRenderRow = $this->addLine($cfg['workbook'], $clo);
@@ -255,10 +264,10 @@ class Pman_Core_SimpleExcel extends Pman
                     if (empty($cl[$col_cfg['dataIndex']])) {
                         continue;
                     }
-                    if (isset($col_cfg['renderer'])) {
+                    if (!empty($col_cfg['renderer'])) {
                         
                         if (is_a($col_cfg['renderer'], 'Closure')) {
-                            $col_cfg['renderer']->call($this, $cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $cl);
+                            $col_cfg['renderer']($cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $cl);
                         } else {
                         // not sure if row is correct here...!!!?
                             call_user_func($col_cfg['renderer'], $cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $cl);
@@ -332,7 +341,8 @@ class Pman_Core_SimpleExcel extends Pman
             if (isset($col_cfg['txtrenderer'])) {
                 
                  if (is_a($col_cfg['txtrenderer'], 'Closure')) {
-                    $v =     $col_cfg['txtrenderer']->call($this, $cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $clo);
+                     
+                    $v =     $col_cfg['txtrenderer']($cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $clo);
                 } else {
                     $v = call_user_func($col_cfg['txtrenderer'], 
                             $cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $clo);