8
votes

Comment exporter un fichier DataGrid vers un fichier Excel dans Flex?

Comment puis-je exporter des données dans mon DataGrid vers un Excel fichier dans Flex ?

Quelqu'un peut-il fournir quelques exemples pour cela? Je vais naviguer mais je ne pouvais pas trouver un seul exemple de ce genre.

Modifier

parcouru beaucoup et découvert comment convertir les données DataGrid sur le format CSV. Maintenant, comment convertir cela pour exceller? Y a-t-il un moyen de le faire sans utiliser de script de serveur? Ne peut-il pas être fait dans Flex seul?


2 commentaires

Quelle est votre technologie côté serveur?


Utilisation de Java Servlets à Eclipse


6 Réponses :


1
votes

Excel lit le Table HTML comme une sorte de feuille de calcul. Il suffit de lire la rangée de la grille à la ligne, de la colonne par colonne et de produire un ensemble de cellules de table HTML et de produire un fichier nommé na.xls.


1 commentaires

Je l'ai créé sous la forme de tables HTML. Comment produire un fichier Excel?



1
votes

Si vous avez un support de servlet Java, vous pouvez utiliser un servlet pour émettre le fichier.

Mon seul Flex - l'idée était de produire le CSV Données à une fenêtre contextuelle avec une textaree pouvant être copiée et collée dans un fichier par l'utilisateur.


0 commentaires

3
votes

Il y a AS3XLS pour que vous Écrivez le fichier XLS . Il ne supporte qu'une seule feuille (mais je pense que c'est bien).

Mais je pense que l'utilisation de CSV ou de HTML comme indiqué par @susicican et @rafal Ziolkowski sera plus simple si vous n'avez pas besoin d'utiliser des fonctions Excel (comme formule cellulaire).

Oh, et il y a CSVLIB pour écrire CSV. Pour HTML, faites-le comme l'écriture XML ira bien.


0 commentaires


0
votes

AS3XLS semble lire bien, mais écrire des fichiers Excel est une autre histoire. Il ne peut pas écrire des classeurs multipartites, ce que [la plupart du temps] ne peut pas lire ses propres fichiers et, lorsque Excel peut lire ce que AS3XLS crit, vous devez effectuer plusieurs économies pour obtenir toutes les ordures. Un vrai bummer. Je travaille sur l'utilisation d'Air 2.0's Nativeprocess pour appeler un script Python pour faire l'écriture et je suppose que je devrais exporter le DataGrid / ArrayCollection à la CSV d'abord ... Cela semble être un long chemin. Je ne peux pas croire qu'il n'y a pas une meilleure option ActionScript pour la chaude avec Excel. Est-ce vraiment que rare une tâche?


0 commentaires

1
votes

Télécharger le fichier SWC à partir du lien suivant

Lien P>

Vous devez maintenant faire un peu de travail, copiez simplement ce code et donnez des noms de colonne de manière appropriée. P>

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);
            }
        }


0 commentaires