mindseu
Messages postés3Date d'inscriptionsamedi 14 avril 2007StatutMembreDernière intervention22 octobre 2008 25 sept. 2008 à 11:55
Salut,
LORIBE : il faut ajouter dans ton projet, les références
Microsoft Office x.0 Object Library,
Microsoft Word x.0 Object Library,
Microsoft Excel x.0 Object Library.
Puis dans la classe, importer les espaces de noms Word et Excel.
Voici le code corrigé pour Visual Basic 2008 Express
Imports Word
Imports Excel
Class ClassImpressionFichier
Public Sub New()
End Sub
Public Shared Sub ImprimerFichierWord(ByVal fileName As Object, ByVal visible As Boolean, ByVal NbCopies As Integer)
Try
Dim aWord As Word.Application
Dim aDoc As Word.Document
aWord = New Word.Application()
aWord.Visible = visible
Dim Missing As Object = System.Reflection.Missing.Value
aDoc = aWord.Documents.Open(fileName, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing)
Dim myTrue As Object = True
Dim myFalse As Object = False
Dim missingValue As Object = Type.Missing
Dim range As Object = Word.WdPrintOutRange.wdPrintAllDocument
Dim items As Object = Word.WdPrintOutItem.wdPrintDocumentContent
Dim copies As Object = NbCopies
Dim pages As Object = "1"
Dim pageType As Object = Word.WdPrintOutPages.wdPrintAllPages
aDoc.PrintOut(myFalse, myFalse, range, missingValue, missingValue, missingValue, items, copies, pages, pageType, myFalse, myTrue, _
missingValue, myFalse, missingValue, missingValue, missingValue, missingValue)
aWord.Quit(myFalse, missingValue, missingValue)
aWord = Nothing
aDoc = Nothing
Catch
MessageBox.Show("Erreur lors de l'ouverture du document")
End Try
End Sub
Je n'ai mis que la première partie du code.
Sinon, un grand merci à toi MOOMOON07, depuis le temps que je cherche.
cs_habibdu70
Messages postés25Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention26 novembre 2008 16 mai 2008 à 12:04
Bonjour,
Je n'est pas trés bien compris comment vous gérer vos couleur ?
en fait je suis en train de créer une application qui va copier un fichier excel vers un DataGridView mais je n'arrive pas a copier la couleur. (BackColor et ForeColor).
Pourrais-je avoir de l'aide ?
merci.
cs_Moomoon07
Messages postés6Date d'inscriptionmercredi 31 mai 2006StatutMembreDernière intervention26 octobre 2006 29 janv. 2008 à 13:12
Salut
Que l'on me corrige si je me trompe, je touche plus au C# depuis quelques mois,
Si je me rappelle bien, les assembly office ne sont pas dans le frameworks (a l'époque ou jai ecrit cette source c'était le 2.0).
Pour moi il suffit d'intaller office sur le poste, mais peut etre qu'il faudrait que tu regardes si les assembly office sont bien inclus dans ton projet.
En tous cas, ca me semble etre une classe manquante dans ta librairie office, ou une librairie manquante.
Peut être un pb de version ...
Bon courage !
loribe
Messages postés1Date d'inscriptionmardi 12 septembre 2006StatutMembreDernière intervention29 janvier 2008 29 janv. 2008 à 09:45
"Microsoft.Office.Interop.Word._Application aWord;"
en c# est converti en visual basic par:
"Dim aWord As Microsoft.Office.Interop.Word._Application"
et provoque dans une application Visual Web developer 2005 Express l'erreur suivante:
"Type'Microsoft.Office.Interop.Word._Application" non défini."
Comment puis-je resoudre ce problème.
Merci
caiuspupus
Messages postés1Date d'inscriptionlundi 27 mars 2006StatutMembreDernière intervention 6 septembre 2007 6 sept. 2007 à 17:58
Après survol rapide aussi:
Si le code est généré sur le serveur, comment faire pour que l'impression se fasse du coté du client qui se connecte a l'appli?
Si n'importe qui a des infos, je suis preneur, depuis le temps que je cherche et que je gratte un peu partout pour trouver un moyen d'imprimer directement coté client... :)
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 14 nov. 2006 à 15:05
dailleurs jai meme dit une connerie :
Math.Round(D).ToString("0.00");
ou Math.Round(D).ToString("0,00"); je suis plus sur si cest un point ou une virgule....
(enfin apres avoir relu me suis rendu compte que tu voulais 2 chiffres apres la virgule, pas un truc dynamique)
cs_Moomoon07
Messages postés6Date d'inscriptionmercredi 31 mai 2006StatutMembreDernière intervention26 octobre 2006 14 nov. 2006 à 10:26
Cette source ArrondirToString, je l'ai faite à mes débuts en csharp.
J'en étais tellement fier que je n'ai pas pu m'empécher de la mettre :).
Je ne connaissais pas l'existence de Math.
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 14 nov. 2006 à 09:53
string ArrondirToString(double D)...beaucoup de code pour pas grand chose...
return Math.Round(D).ToString();
apres si tu veux impérativement garder tes nombres après la virgule, un truc comme ca doit marcher :
return Math.Round(D).ToString(String.Concat("0,", new string("0", D.ToString().Length - 2)));
enfin ya surement un moyen pour l'écrire encore un peu plus simplement.(dautant que la je fais pas de check d'erreur, au cas ou D serait en fait entier).
pour le reste, cest intéréssant, je my pencherais surement un peu plus ya pas mal de trucs qui minteressent la dedans ;)
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 26 oct. 2006 à 18:30
Pas testé le code et après un très très rapide survol je dirais:
- Mettre le tout dans une classe (à la limite, static si pas possible autrement)
- ajouter object Missing = System.Reflection.Missing.Value; pour la class, car utilisé dans plusieurs méthodes
- La méthode LettreFromIndice n'est pas très élégante, tu pourrais ajouter par exemple 65 à l'entier et le caster ensuite en char
25 sept. 2008 à 11:55
LORIBE : il faut ajouter dans ton projet, les références
Microsoft Office x.0 Object Library,
Microsoft Word x.0 Object Library,
Microsoft Excel x.0 Object Library.
Puis dans la classe, importer les espaces de noms Word et Excel.
Voici le code corrigé pour Visual Basic 2008 Express
Imports Word
Imports Excel
Class ClassImpressionFichier
Public Sub New()
End Sub
Public Shared Sub ImprimerFichierWord(ByVal fileName As Object, ByVal visible As Boolean, ByVal NbCopies As Integer)
Try
Dim aWord As Word.Application
Dim aDoc As Word.Document
aWord = New Word.Application()
aWord.Visible = visible
Dim Missing As Object = System.Reflection.Missing.Value
aDoc = aWord.Documents.Open(fileName, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing)
Dim myTrue As Object = True
Dim myFalse As Object = False
Dim missingValue As Object = Type.Missing
Dim range As Object = Word.WdPrintOutRange.wdPrintAllDocument
Dim items As Object = Word.WdPrintOutItem.wdPrintDocumentContent
Dim copies As Object = NbCopies
Dim pages As Object = "1"
Dim pageType As Object = Word.WdPrintOutPages.wdPrintAllPages
aDoc.PrintOut(myFalse, myFalse, range, missingValue, missingValue, missingValue, items, copies, pages, pageType, myFalse, myTrue, _
missingValue, myFalse, missingValue, missingValue, missingValue, missingValue)
aWord.Quit(myFalse, missingValue, missingValue)
aWord = Nothing
aDoc = Nothing
Catch
MessageBox.Show("Erreur lors de l'ouverture du document")
End Try
End Sub
Je n'ai mis que la première partie du code.
Sinon, un grand merci à toi MOOMOON07, depuis le temps que je cherche.
16 mai 2008 à 12:04
Je n'est pas trés bien compris comment vous gérer vos couleur ?
en fait je suis en train de créer une application qui va copier un fichier excel vers un DataGridView mais je n'arrive pas a copier la couleur. (BackColor et ForeColor).
Pourrais-je avoir de l'aide ?
merci.
29 janv. 2008 à 13:12
Que l'on me corrige si je me trompe, je touche plus au C# depuis quelques mois,
Si je me rappelle bien, les assembly office ne sont pas dans le frameworks (a l'époque ou jai ecrit cette source c'était le 2.0).
Pour moi il suffit d'intaller office sur le poste, mais peut etre qu'il faudrait que tu regardes si les assembly office sont bien inclus dans ton projet.
En tous cas, ca me semble etre une classe manquante dans ta librairie office, ou une librairie manquante.
Peut être un pb de version ...
Bon courage !
29 janv. 2008 à 09:45
en c# est converti en visual basic par:
"Dim aWord As Microsoft.Office.Interop.Word._Application"
et provoque dans une application Visual Web developer 2005 Express l'erreur suivante:
"Type'Microsoft.Office.Interop.Word._Application" non défini."
Comment puis-je resoudre ce problème.
Merci
6 sept. 2007 à 17:58
Si le code est généré sur le serveur, comment faire pour que l'impression se fasse du coté du client qui se connecte a l'appli?
Si n'importe qui a des infos, je suis preneur, depuis le temps que je cherche et que je gratte un peu partout pour trouver un moyen d'imprimer directement coté client... :)
14 nov. 2006 à 15:05
Math.Round(D).ToString("0.00");
ou Math.Round(D).ToString("0,00"); je suis plus sur si cest un point ou une virgule....
(enfin apres avoir relu me suis rendu compte que tu voulais 2 chiffres apres la virgule, pas un truc dynamique)
14 nov. 2006 à 10:26
J'en étais tellement fier que je n'ai pas pu m'empécher de la mettre :).
Je ne connaissais pas l'existence de Math.
14 nov. 2006 à 09:53
return Math.Round(D).ToString();
apres si tu veux impérativement garder tes nombres après la virgule, un truc comme ca doit marcher :
return Math.Round(D).ToString(String.Concat("0,", new string("0", D.ToString().Length - 2)));
enfin ya surement un moyen pour l'écrire encore un peu plus simplement.(dautant que la je fais pas de check d'erreur, au cas ou D serait en fait entier).
pour le reste, cest intéréssant, je my pencherais surement un peu plus ya pas mal de trucs qui minteressent la dedans ;)
26 oct. 2006 à 18:30
- Mettre le tout dans une classe (à la limite, static si pas possible autrement)
- ajouter object Missing = System.Reflection.Missing.Value; pour la class, car utilisé dans plusieurs méthodes
- La méthode LettreFromIndice n'est pas très élégante, tu pourrais ajouter par exemple 65 à l'entier et le caster ensuite en char