使用Extjs生成excel报告

时间:2014-01-09 12:58:57

标签: php extjs symfony-1.4 phpexcel

目前在我的用户界面(即CRUD)中,我添加了一个“生成Excel报告”按钮,这意味着当它被点击时,会出现一个文件下载对话框,并询问我是否会下载该文件(一起使用我的postgre数据库中的数据)到excel文件。

我的问题是我还没有制作我的Ext。对于这个。我已经完成了几次尝试,但仍然无效。

这是我到目前为止所尝试的:

来自我的'actions.class.php':

public function executeGenerateEmployee(sfWebRequest $request)
{
  require_once dirname(__FILE__) . '../../../../../../lib/PhpExcel/Classes/PHPExcel.php';
  // $con = Doctrine::getConnection("doctrine");    
  $con = Doctrine_Manager::getInstance()->getCurrentConnection();

  $sql = "SELECT e.id AS e__id, e.department AS e__department, (e.fname || ' ' || e.lname) AS e__0 FROM employees e ORDER BY e.id";

  $sheetTitle='Excel Report';
  $report_type='Programmers Group';
  $stmt = $con->prepare($sql);
  $stmt->execute();
  $excel_report = $stmt->fetchAll(PDO::FETCH_ASSOC);

  if(!empty($excel_report))
  {
    $objPHPExcel = new PHPExcel();
    $this->processExcel($excel_report,$objPHPExcel,$sheetTitle,$report_type);
    $objPHPExcel->createSheet();
    $writer = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007");   
    $writer->save("/tmp/excel_Report_2.xlsx");//directory

    die();
  }
    die('here');
 }

对于我的'test.js':

 var generateItem = new Ext.Action ({
            text: 'Generate Excel Report',
            width: 60,
            enabled: true,
            handler: function(){        
            }               
        });
 GenerateReport: function() {},

我相信我的actions.class.php文件中的代码是正确的。我做了很多测试。 只有我的Ext。是我的问题。 有人可以帮我解决这个问题吗? 感谢。

1 个答案:

答案 0 :(得分:0)

我们可能会为您提供一个现成的解决方案,而不是花太多时间来构建它。我们已经创建了一个前端XLS(X)和CSV导入和导出工具,您可以在ExtJS 4应用程序中使用几行代码。用户只需拖动网格上的文件即可完成。我们刚推出它,这里有一个描述:http://2gears.com/2014/08/ext-js-excel-import-export-easy/

如上所述,导入和导出是在客户端完成的,因此在具有许多并发用户的应用程序中,这可以减轻服务器过载的负担。在接下来的几周内,还将添加一个导入向导,用于指导功能较少的用户导入文件。

希望它有所帮助。