2009-11-02 104 views
8

如何將數據網格中的數據導出到Flex中的Excel文件?如何在Flex中將數據網格導出爲Excel文件?

任何人都可以提供一些例子嗎?我正在瀏覽,但找不到一個這樣的例子。

編輯

瀏覽的很多,發現瞭如何DataGrid的數據轉換爲csv格式。現在如何將其轉換爲Excel?有沒有辦法做到這一點,而不使用任何服務器腳本?難道只有Flex才能完成這項工作嗎?

+0

什麼是您的服務器端技術? – 2009-11-02 13:45:51

+0

在Eclipse中使用java Servlets – Angeline 2009-11-03 07:26:32

回答

1

Excel讀取HTML表作爲一種電子表格。只需逐行,逐列讀取網格並生成一組HTML表格單元格並生成一個名爲whatever.xls的文件。

+0

我已經以html表格的形式創建它。如何生成一個excel文件? – Angeline 2009-11-03 09:11:31

1

如果您有一個Java servlet後端,您可以使用一個servlet來輸出文件。

我唯一的想法是將CSV數據輸出到帶有textarea的彈出窗口,該textarea可以被用戶複製並粘貼到文件中。

3

as3xlswrite xls file。它只支持一張表格(但我認爲這很好)。

但我認爲如果你不需要使用excel函數(比如單元格公式),使用@susichan和@Rafal Ziolkowski所述的csv或html會更簡單。

哦,並且有csvlib寫作csv。對於html來說,像寫XML一樣好就可以了。

0

as3xls似乎看不錯,但寫入Excel文件是另外一個故事。它不能編寫多頁工作簿,它[大部分時間]不能讀取它自己的文件,並且當Excel可以讀取as3xls吐出的內容時,必須進行多次保存才能獲取所有垃圾。一個真正的無賴。我正在使用AIR 2.0的NativeProcess調用Python腳本來完成寫作,我想我必須首先將datagrid/ArrayCollection導出爲CSV ......看起來很漫長。無法相信沒有更好的ActionScript選項來分散Excel。這真的是一項難得的任務嗎?從以下鏈接

Link

現在,你需要做的工作有點

1

首先下載SWC文件只是複製代碼,並適當給予列名。

public function roExport_export_Result(e:ResultEvent):void 
     { 
      if(e.result.length != 0) 
      { 
       btnExportToExcel.enabled = true; 

       var arrExportResult:Array = e.result as Array; 

       xlsFile = new ExcelFile(); 
       var sheet:Sheet = new Sheet(); 

       sheet.resize(arrExportResult.length+1,14); 

       sheet.setCell(0,0,'Id'); 
       sheet.setCell(0,1,'Full Name'); 
       sheet.setCell(0,2,'Gender'); 
       sheet.setCell(0,3,'Birth Date'); 
       sheet.setCell(0,4,'College Name'); 
       sheet.setCell(0,5,'Qualification'); 
       sheet.setCell(0,6,'Email Id'); 
       sheet.setCell(0,7,'Mobile'); 
       sheet.setCell(0,8,'Position Applied For'); 
       sheet.setCell(0,9,'Technology Interested'); 
       sheet.setCell(0,10,'User Name'); 
       sheet.setCell(0,11,'Password'); 
       sheet.setCell(0,12,'Exam Date'); 
       sheet.setCell(0,13,'Percentage'); 
       sheet.setCell(0,14,'IsActive'); 

       for(var i:int=0;i<arrExportResult.length;i++) 
       { 
        sheet.setCell(i+1, 0, arrExportResult[i].Id); 
        sheet.setCell(i+1, 1, arrExportResult[i].FullName); 
        if(arrExportResult[i].Gender == 1) 
        { 
         arrExportResult[i].Gender = "Male" 
        } 
        else 
        { 
         arrExportResult[i].Gender = "Female"; 
        } 
        sheet.setCell(i+1, 2, arrExportResult[i].Gender); 
        var date:String = arrExportResult[i].BirthDate.date.toString(); 
        var month:String = (arrExportResult[i].BirthDate.month + 1).toString(); 
        var year:String = arrExportResult[i].BirthDate.fullYear.toString(); 
        var bDate:String = date + "/" + month + "/" + year; 
        arrExportResult[i].BirthDate = bDate; 
        sheet.setCell(i+1, 3, arrExportResult[i].BirthDate); 
        sheet.setCell(i+1, 4, arrExportResult[i].CollegeId); 
        sheet.setCell(i+1, 5, arrExportResult[i].QualificationId); 
        sheet.setCell(i+1, 6, arrExportResult[i].EmailId); 
        sheet.setCell(i+1, 7, arrExportResult[i].Mobile); 
        sheet.setCell(i+1, 8, arrExportResult[i].PositionName); 
        sheet.setCell(i+1, 9, arrExportResult[i].TechForTraining); 
        sheet.setCell(i+1, 10, arrExportResult[i].UserName); 
        sheet.setCell(i+1, 11, arrExportResult[i].Password); 
        var date:String = arrExportResult[i].CreatedDate.date.toString(); 
        var month:String = (arrExportResult[i].CreatedDate.month + 1).toString(); 
        var year:String = arrExportResult[i].CreatedDate.fullYear.toString(); 
        var hour:String = arrExportResult[i].CreatedDate.hours.toString(); 
        var min:String = arrExportResult[i].CreatedDate.minutes.toString(); 
        var sec:String = arrExportResult[i].CreatedDate.seconds.toString(); 
        var cDate:String = date + "/" + month + "/" + year + " " + hour + ":" + min + ":" + sec; 
        arrExportResult[i].CreatedDate = cDate; 
        sheet.setCell(i+1, 12, arrExportResult[i].CreatedDate); 
        sheet.setCell(i+1, 13, arrExportResult[i].Percentage); 
        sheet.setCell(i+1, 14, arrExportResult[i].IsActive); 
       } 

       dataGridResult.dataProvider = arrExportResult; 

       xlsFile.sheets.addItem(sheet);  
       bytes = xlsFile.saveToByteArray();     
      } 
      else 
      { 
       arrExportResult = new Array(); 
       dataGridResult.dataProvider = arrExportResult; 
       btnExportToExcel.enabled = false; 
       xlsFile = new ExcelFile(); 
       var sheet:Sheet = new Sheet(); 
       Alert.show("No Records Found",parentApplication.alertTitle); 
      } 
     } 
相關問題