Associer une worksheet à un GridView, possible ? - C#/.NET managed - Programmation
Marsh Posté le 05-07-2010 à 17:31:07
Merci beaucoup pour ton lien.
J'ai un problème que je comprends pas malgré ça, le serveur est super long (j'arrive même pas à afficher la page tellement c'est long).
J'ai essayé de voir à quel niveau ca devenait long et c'est lors de l'ouverture du fichier excel et ce que je comprend pas c'est que le code est déjà utilisé ailleurs et ce n'est pas du tout long.
Code :
|
La suite du code c'est ce qu'il y a dans ton lien, mais en mettant des ligne en commentaire je constate que là où c'est super long c'est à ce niveau :
Code :
|
Et ce code là je l'utilise sur autre page sans soucis pourtant.
(mon fichier excel est enregistré en base sous forme binaire, ce que je fais ci-dessus c'est que je le récupère je créer un fichier xls temporaire que j'essaye d'ouvrir)
Note : J'ai demandé à l'admin réseaux d'analyser le serveur et il ne voit rien d'anormal apparemment.
Marsh Posté le 05-07-2010 à 18:03:27
C'est une première ouverture et oui j'ai tout fermer.
Marsh Posté le 06-07-2010 à 09:12:41
En fait je travail directement sur le serveur de test et il y a pas de .sln donc je peux pas déboguer et je ne peux pas non plus importer les fichiers en local car mon pc rame de trop. (c'est pas moi qui ai codé 80% de l'appli.)
La ligne c'est exactement la même et dans mon catch j'envoie les éventuelles message d'erreur dans un fichier mais je viens de regarder et il n'y a rien.
Marsh Posté le 06-07-2010 à 13:51:28
Le serveur http à souvent des problèmes donc je me demande si ça ne vient pas de là, au final à la place d'afficher mon fichier dans un GridView je vaisfaire beaucoup plus simple et le proposer en téléchargement.
Code :
|
Là ça propose bien le fichier en téléchargement, le soucis c'est que l'utilisateur doit sélectionner avec quel logiciel l'ouvrir et c'est pas top.
Ce qu'il me manque c'est le contentType et le problème c'est que lors de la sauvegarde en base j'utilise une dll interne à ma boite qui sauvegarde le fichier en base mais pas le contentType...
Je me demande si à partir du fichier c'est possible de le récupérer (ce que je doute).
Marsh Posté le 06-07-2010 à 21:24:05
Pareil, il doit y avoir une astuce. Détecter le type d'un fichier est généralement possible à partir de l'entête pourvu qu'on s'en tienne aux formats les plus courants, mais c'est naze de devoir en passer par là, l'info n'aurait pas du se perdre en route. Et puis il faut bien qu'à un moment on nomme le fichier et qu'on dise à l'utilisateur ce qu'il est en train d'ouvrir...
De toute façon si tu voulais l'afficher dans un GV c'est qu'il était manipulable à un moment, à moins que tu ne te sois rendu compte que par la suite que tu n'as pas tjs affaire à du excel...
edit : rq dans une boite qui développe directement sur le serveur tt est possible .
Marsh Posté le 07-07-2010 à 09:56:39
TotalRecall a écrit : Pareil, il doit y avoir une astuce. Détecter le type d'un fichier est généralement possible à partir de l'entête pourvu qu'on s'en tienne aux formats les plus courants, mais c'est naze de devoir en passer par là, l'info n'aurait pas du se perdre en route. Et puis il faut bien qu'à un moment on nomme le fichier et qu'on dise à l'utilisateur ce qu'il est en train d'ouvrir... |
Normalement ça doit être que des fichiers excel. Mais j'ai vu des utilisateurs mettre n'importe quoi en pièce jointe(photo, pdf, fichier word...) et il faut que ça puisse être visualisé dans tous les cas...
Pour ton édit, c'est clair que développer directement sur le serveur de test c'est vraiment pas génial mais en local c'est vraiment impossible vu comment ca rame/bug etc...
Après je cracherais pas sur ma boite car elle me convient parfaitement (et elle vient de m'embaucher ) seulement là c'est un projet un peu particulier ou plein de développeurs ont mis leur petite sauce et qui a été fait quasiment sans analyse d'après ce qu'on m'a dit donc forcément c'est pas top et je vois pas mal de perle
Marsh Posté le 07-07-2010 à 17:42:21
J'approuve pour le fait d'utiliser l'entête, par contre j'espère bien qu'il y a des moyens moins lourds qu'appeler un EXE dont on grep la sortie standard . Il doit bien avoir un mec qui a pondu une DLL managée ou au pire COM pour arriver au même résultat...
Cela dit, si tu as 3 DLs par heure TRID est un super outil (pense à prendre les définitions à jour, celles dans l'EXE ont au moins 5 ans)
Marsh Posté le 08-07-2010 à 15:13:46
Hello
Je donne des petites nouvelles, en fait ce code :
Code :
|
Me propose bien le téléchargement du fichier sans que l'utilisateur n'a à sélectionné le logiciel lui même.
Le problème que je rencontrais, c'est apparemment uniquement lié à un certain type de fichier Excel, là j'ai refais des test avec des .xls, .pdf etc... et ça fonctionne.
Marsh Posté le 08-07-2010 à 17:56:56
Si je comprend bien, tableFichier.Rows[0]["LabelFichier"].ToString() contient le nom du fichier. Effectivement, ça contredit tes affirmations précédentes : tu connais donc l'extension.
Au risque de me tromper, je pense qu'envoyer en ContentType "application/octet-stream" c'est pas optimal, je ne sais pas trop ce que ça fait mais j'imagine que ça laisse le navigateur se démerder pour trouver l'applicatif à utiliser (certainement en fonction du nom fourni au content disposition ou de l'entête).
Tu pourrais peut être spécifier le bon type MIME directement selon l'extension, mais si ça marche ocmme ça sur tous les navigateurs laisse tomber.
Marsh Posté le 01-07-2010 à 16:42:18
Bonjour
Je récupère un fichier Excel d'une base de données, ce que je voudrais c'est retranscrire la feuille Excel dans mon GridView (avec les colonnes etc..) est ce que c'est possible ? Avez vous une piste à me donner ?
Actuellement, je bloque ici :
J'ai donc ma worksheet, mais je ne sais pas comment l'associer à mon GridView.
---------------
Pire qu'une pierre dans la chaussure, est un grain de sable dans la capote. Coluche.