2010-10-21 6 views
1

J'ai besoin d'héberger une feuille de calcul Excel dans notre application WinForms. Il semble que le chargement du fichier Excel dans le contrôle WebBrowser est la solution. Il existe plusieurs articles sur Internet à ce sujet. Cependant, ils utilisent principalement Excel 2003 (je suppose). Excel 2007 présente quelques nouveaux problèmes:Problèmes lors du chargement du fichier Excel 2007 dans le contrôle WebBrowser en C#?

  1. Par défaut, la feuille de calcul Excel est ouvert dans une nouvelle fenêtre, au lieu de mon contrôle, enfouis dans WebBrowser. Basé sur Microsoft, c'est par conception, mais il suggère également une solution en modifiant les paramètres du registre. Ce n'est pas génial, mais je peux probablement vivre avec ça.

  2. Avec ce changement de registre, j'ai pu intégrer la feuille de calcul Excel dans mon contrôle WebBrowser. Cependant, le classeur Excel est toujours ouvert en arrière-plan - que je ne peux même pas fermer, mais qui est fermé automatiquement lorsque mon application WinForm est fermée. Il est intéressant de voir comment la feuille de calcul est chargée: elle est d'abord chargée dans le classeur Excel (en arrière-plan), puis transférée dans mon contrôle WebBrowser. Comment puis-je me débarrasser (ou masquer) de cette fenêtre d'arrière-plan? EDIT: En fait, la fenêtre Excel n'est pas fermée, mais mise en arrière-plan. Cependant, avec l'aide de this article à CodeProject, il peut être fermé. Dans cet article, la fenêtre Excel est fermée lorsque WinApp est fermé. Mais la même fonction peut être utilisée pour fermer cette fenêtre sur l'événement DocumentCompleted de WebBrowser. Ce n'est pas parfait parce que vous voyez toujours un flash d'écran, mais ça va. Je souhaite qu'il y ait une meilleure façon de le faire. Pour éviter les flashs d'écran, j'ai essayé de minimiser la fenêtre Excel. Toutefois, lorsque j'essaie de définir WindowState sur Minimized, une exception COM est générée. Une idée? Ce serait une meilleure solution de contournement si je pouvais masquer cette fenêtre désactivée depuis le début. Lorsque vous ouvrez une feuille de calcul pour la première fois, une boîte de dialogue s'affiche pour vous demander des options pour «Ouvrir», «Enregistrer» et «Annuler». Il y a une case à cocher pour le désactiver. Mais je ne veux pas que cette boîte à messages apparaisse. Quel est le paramètre de registre pour cela?

  3. Dans ma feuille de calcul, il existe un composant complémentaire qui doit être chargé dynamiquement. Cependant, le chargement de WebBrowser ne fonctionne pas (il ne peut pas le trouver). Si je rend le complément actif, il se charge sans problème. Y at-il quelque chose sur WebBrowser à changer pour le faire fonctionner?

Existe-t-il de meilleures alternatives pour héberger une feuille de calcul Excel dans l'application WinForms?

+0

Salut Miliu J'ai le même problème, avez-vous trouvé un meilleur moyen d'intégrer des fichiers xls? –

Répondre

0

Si vous avez le contrôle sur les utilisateurs et quelle version Office ils utilisent, vous pouvez cliquer avec le bouton droit sur le menu dans Visual Studio et ajouter le contrôle Excel correspondant à la boîte à outils. Vous pouvez également charger dynamiquement le contrôle (ce qui peut représenter beaucoup plus de travail en raison des nuances de chacun) en vérifiant le registre et la gestion des erreurs.

+0

Merci pour la réponse rapide. Malheureusement, cela ne semble pas être une option pour moi. – newman

Questions connexes