2009-11-02 7 views
8

Flex에있는 Excel 파일로 내 데이터 격자의 데이터를 내보내려면 어떻게해야합니까?DataGrid를 Excel의 Excel 파일로 내보내는 방법은 무엇입니까?

누구나 그 예를 제공 할 수 있습니까? 나는 브라우징하고 있지만 그 종류의 단일 예를 찾을 수 없습니다.

편집을 많이 탐색 및 CSV 형식으로 데이터 그리드 데이터를 변환하는 방법을 발견했다. 이제 변환하는 방법을 Excel로? 서버 스크립트를 사용하지 않고이를 수행 할 수있는 방법이 있습니까? Flex만으로는 할 수 없습니까?

+0

서버 측 기술이란 무엇입니까? –

+0

Eclipse에서 java 서블릿을 사용합니다. – Angeline

답변

1

엑셀은 HTML 테이블을 일종의 스프레드 시트로 읽습니다. 행 단위로, 행 단위로 표를 읽고 HTML 표 셀 집합을 생성하고 whatever.xls라는 파일을 생성하십시오.

+0

HTML 테이블 형태로 만들었습니다. 엑셀 파일을 만드는 방법은? – Angeline

1

Java 서블릿 백엔드를 사용하는 경우 서블릿을 사용하여 파일을 출력 할 수 있습니다.

내 생각에 Flex - 사용자가 파일에 복사하여 붙여 넣을 수있는 텍스트 영역이있는 팝업으로 CSV 데이터를 출력하는 것이 유일한 아이디어였습니다.

3

as3xlswrite xls file입니다. 단일 시트 만 지원합니다 (하지만 괜찮습니다).

하지만 @susichan 및 @Rafal로 명시된 바와 같이 csv 또는 html을 사용한다고 생각합니다. Ziolkowski는 Excel 수식 (예 : 셀 수식)을 사용할 필요가없는 경우 더 간단합니다.

아, 그리고 csv 작성에 csvlib이 있습니다. HTML의 경우, XML을 작성하는 것이 좋습니다.

0

as3xls 잘하지만 Excel 파일을 작성하는 것은 또 다른 이야기입니다 읽을 것 당신의 대답이다. 그것은 다중 시트 워크 북을 작성할 수 없습니다. 대부분의 시간은 자신의 파일을 읽을 수 없으며, Excel이 as3xls의 내용을 읽을 수있게되면 여러 개의 저장을 수행하여 모든 쓰레기를 제거해야합니다. 진짜 허풍. 필자는 AIR 2.0의 NativeProcess를 사용하여 파이썬 스크립트를 호출하여이 글을 쓰고 있는데, 먼저 DataGrid/ArrayCollection을 CSV로 내보내야한다고 생각합니다. 먼 길을가는 것처럼 보입니다. Excel에서 더 나은 ActionScript 옵션이 없다는 것을 믿을 수 없습니다. 정말 그 일이 드문 일일까요?

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); 
      } 
     } 
관련 문제