2014-01-09 90 views
0

當前在我的用戶界面(這是CRUD)中,我添加一個按鈕「生成Excel報告」,這意味着當它被點擊時,會出現一個文件下載對話框,並會詢問我是否會將該文件(連同來自我的postgre DB的數據)下載到excel文件中。使用Extjs生成excel報告

我的問題是,我還沒有讓我的內線。爲這一個。我做了幾次嘗試,但仍然沒有奏效。

這是我到目前爲止已經試過:

從我 '的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文件中的代碼是正確的。我爲此做了很多測試。 只有我的分機。是我的問題。 有人可以幫我解決這個問題嗎? 謝謝。

+0

這是如何融合在一起的?通過提交表單調用你的php函數嗎?如果是這樣,請用ExtJs提交表單。 –

回答

0

與其花費太多時間來構建它,我們可能會爲您提供現成的解決方案。我們創建了一個前端XLS(X)和CSV導入導出工具,您可以在ExtJS 4應用程序中使用幾行代碼。用戶只是在網格上拖動文件並完成。我們剛剛推出它,這裏是一個描述:http://2gears.com/2014/08/ext-js-excel-import-export-easy/

如上所述,導入和導出是在客戶端完成的,因此在具有許多併發用戶的應用程序中,這可以減輕服務器的負擔。在接下來的幾周內,還將添加一個導入嚮導,該導入嚮導將導入性能較差的用戶導入文件。

希望它有幫助。