Comment puis-je exporter des données dans mon DataGrid vers un Excel fichier dans Flex ? P>
Quelqu'un peut-il fournir quelques exemples pour cela? Je vais naviguer mais je ne pouvais pas trouver un seul exemple de ce genre. P>
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? P>
6 Réponses :
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. P>
Je l'ai créé sous la forme de tables HTML. Comment produire un fichier Excel?
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). P>
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). P>
Oh, et il y a CSVLIB pour écrire CSV. Pour HTML, faites-le comme l'écriture XML ira bien. P>
Voici votre réponse p>
http://learnflexair.wordpress.com/category/uncategorisé/air/ a> p>
Ce n'est plus disponible.
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? P>
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); } }
Quelle est votre technologie côté serveur?
Utilisation de Java Servlets à Eclipse