Dupliqué possible: strong>
générer un fichier Excel dans ASP.NET P> blockQuote>
Voici ma question: strong> Comment créez-vous de manière programmable un fichier Excel "vrai"? p>
Remarque: strong> Je ne veux pas dire un fichier CSV, HTML / CSS ou XML, je veux dire un fichier écrit dans le même format Excel utilise pour enregistrer des feuilles de calcul. P>
fond: strong> Je travaille sur une application ASP.NET, qui inclut Radgrid de Telerik. Nous utilisons actuellement la fonction ExportToexcel () de Radgrid, mais certains de nos clients doivent pouvoir visualiser ces exportations à l'aide de Excel Viewer. La fonction de Telerik exporte un fichier HTML / CSS, que la version complète d'Excel peut ouvrir, mais Excel Viewer ne peut pas. P> Je suis sûr qu'il est possible de créer de manière programmable un fichier "vrai" Excel, mais je ne sais pas où commencer. Y a-t-il un SDK qui pourrait m'aider à faire cela? P>
Toutes les suggestions seraient appréciées. Merci d'avance. P>
5 Réponses :
Vous pouvez obtenir le fichier de bureau Formats spécifications de Microsoft, mais les formats binaires sont horriblement complexes dans des endroits. Vous pourriez probablement vous échapper avec une implémentation minimale. Voici le
La seule autre option qui me vient à l'esprit consiste à automatiser Excel et à le faire produire le fichier. P>
Si Excel Viewer pourrait ouvrir les nouveaux formats XML, je serais ravi. - Mais ils ne semblent pas être pris en charge.
Si vos clients sont soumis à la mise à jour de la dernière visionneuse Excel ici: microsoft.com/download/fr/details.aspx?displaylang=fr&id=10 (qui selon la page de téléchargement peut afficher des fichiers .xlsx) alors peut-être que c'est un problème résolu? J'ai également mis à jour ma réponse avec un lien direct vers la spécification binaire .xls en cas de ne pas l'éviter.
Vous pouvez utiliser INTEROP (comme décrit dans une autre réponse), mais vous n'êtes pas officiellement pris en charge dans l'environnement du serveur. p>
Une autre solution utiliserait openxml sdk 2.0 em> strong>, ce qui devrait vous permettre de créer des fichiers XLSX. Il peut être téléchargé à partir d'ici: http://www.microsoft. com / téléchargement / fr / Détails.aspx? displaylang = EN & ID = 5124 . Si vous avez décidé d'utiliser cette solution, je vous recommande de jeter un coup d'œil à outil de productivité openxml SDK 2.0 em> strong> disponible là aussi. P>
J'ai regardé OpenXML, mais peut-il générer un fichier "vrai" Excel? On dirait qu'il génère des fichiers XML basés sur XML que la version complète d'Excel peut lire, mais Excel Viewer ne le ferait pas. Ai-je tort?
Je devrais être capable de créer des fichiers valides et réels i> xlsx, qui est format utilisé par Office 2007 et plus récent. Je n'ai pas testé cela, mais cela devrait fonctionner correctement avec 2207 (ou plus récent) Excel of Excel Viewer. Cependant, il ne peut pas générer des fichiers XLS (format utilisé par Office 2003 et antérieur).
Openxml est microsofts i> format pour les fichiers XML
Oui, mais il est important de mentionner que * .xlsx est un fichier openxml: en.wikipedia.org/wiki/ Openxml .
Vous pouvez utiliser l'Interop à partir d'Excel comme Redfilter vous a montré, mais il existe également des alternatives open source qui ne nécessitent pas Excel à installer sur votre PC pour travailler. Il peut être utile si vous avez un projet ASP.NET déployé sur un serveur qui n'a pas d'excel. P>
EPPLUS est une bonne bibliothèque. http://eppplus.codeplex.com/ p>
Personnalement, j'utilise Koogra. http://sourceforge.net/projects/koogra/?_test=b p>
+1 pour EPPLUS, je l'ai utilisé à la fois pour la création de fichiers d'ouverture / de lecture. Fonctionne très bien.
Il s'agit pour les fichiers 2007/2010, il ne traite probablement que des fichiers .xlsx, mais ne fonctionne pas avec le format de fichier XLS. Quoi qu'il en soit, ça va tant que vous n'avez pas besoin de les utiliser :).
EPPLUS a l'air d'être ce que je cherche. Merci, amaranth!
La dernière version du ExcelViewer Apparemment supporte apparemment Les formats de fichier suivants: p>
Vous pouvez ouvrir uniquement des fichiers Excel (.xlsx, .xlsm, .xlsb, .xltx, .xltm, .xls, .xlt, .xlm et .xlw). Même si vous pouvez ouvrir la macro-activée Fichiers (.xlsm, .xltm et .xlm), vous ne pourrez pas exécuter de macros. P> blockQuote>
Alors ... Les fichiers au format XML ne sont pas un problème - et donc la solution appropriée consiste à écrire des formats openxml. Malheureusement, ce n'est pas amusant ... Vous pouvez le faire, la boîte à outils vous permet de renverser les choses d'ingénieur, mais le code est horrible. P>
Alors, si c'était moi (et cela a été et sera) je regarderais Fermexml à Générez des documents OpenXML - son sommet de ma liste pour le prochain tour. P>
Il y a bien sûr un certain nombre d'options commerciales également - à quel point dépend de votre cas d'utilisation spécifique. P>
Pour tout cela, la réponse "droite" est de générer des documents OpenXML (.xlsx) par tout moyen. P>
edit: strong> La référence à: Excelxmlwriter était faux - cela ne vous aidera pas comme son Excelml p>
Merci. Je peux aussi donner à OpenXML un essai. Est le format XML qu'il produit la même chose que "ExcelML"? Telerik peut également exporter vers ce format, mais Excel Viewer ne peut pas l'ouvrir.
Apache POI est une bibliothèque Java populaire et fiable pour écrire des fichiers Excel. NPOI est une autre bonne option (http://npoi.codeplex.com) pour écrire des fichiers Excel avec .NET. P>
Je cherche également la réponse. Une option est d'utiliser Excel par Interop Services. Mais cela utilise une instance Excel qui est très lente.