begin process at 2010 02 10 04:37:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Au secours

 > 

optimiser automatisation word


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

optimiser automatisation word

vendredi 13 janvier 2006 à 11:49:50 | optimiser automatisation word

cococo84

bonjour,
je cherche à automatiser une page word à partir de mon application winform.
Mon code ci-dessous marche bien mais le temps d'execution est bcp trop long.
Cmt puis-je optimiser ce code pour accroître la vitesse d'execution?
merci d'avance.

// Connexion à Word
Word.Application msWord = new Word.Application();
msWord.Visible = true; object missing = System.Reflection.Missing.Value;
// Attribuer le nom
object fileName = "C:\\Test\\calculgéo.doc";
Word.Document nvDoc;

// ouvrir le document existant
nvDoc = msWord.Documents.Open(ref fileName, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing);


// Copie Le texte que je transfère  dans le clipboard
string monContenu = vaf.P.Value.ToString("0.000");
DataObject clipData1 = new DataObject(DataFormats.Rtf, monContenu);
Clipboard.SetDataObject(clipData1, false) ;
// Transfert le clipboard dans_u87 ?ord

// On identifie l'emplacement
object field = "cell1";
object fieldEnd  = "c1";
object posStart = nvDoc.Bookmarks.get_Item(ref field).Start;
object posEnd = nvDoc.Bookmarks.get_Item(ref fieldEnd).End;
nvDoc.Range( ref posStart, ref posEnd).Select();
// On transfert le texte
msWord.Selection.Paste();
// On déplace le bookmark de fin
nvDoc.Bookmarks.Add((string)fieldEnd, ref missing);

monContenu = inf.textBox1.Text;
DataObject clipData115 = new DataObject(DataFormats.Rtf, monContenu) ;
Clipboard.SetDataObject(clipData115, false) ;
field = "cell115" ;
fieldEnd  = "c115";
posStart = nvDoc.Bookmarks.get_Item(ref field).Start;
posEnd = nvDoc.Bookmarks.get_Item(ref fieldEnd).End;
nvDoc.Range( ref posStart, ref posEnd).Select();
msWord.Selection.Paste();
nvDoc.Bookmarks.Add((string)fieldEnd, ref missing);

monContenu = inf.textBox2.Text;
DataObject clipData116 = new DataObject(DataFormats.Rtf, monContenu) ;
Clipboard.SetDataObject(clipData116, false) ;
field = "cell116" ;
fieldEnd  = "c116";
posStart = nvDoc.Bookmarks.get_Item(ref field).Start;
posEnd = nvDoc.Bookmarks.get_Item(ref fieldEnd).End;
nvDoc.Range( ref posStart, ref posEnd).Select();
msWord.Selection.Paste();
nvDoc.Bookmarks.Add((string)fieldEnd, ref missing);

monContenu = inf.textBox4.Text;
DataObject clipData117 = new DataObject(DataFormats.Rtf, monContenu) ;
Clipboard.SetDataObject(clipData117, false) ;
field = "cell117" ;
fieldEnd  = "c117";
posStart = nvDoc.Bookmarks.get_Item(ref field).Start;
posEnd = nvDoc.Bookmarks.get_Item(ref fieldEnd).End;
nvDoc.Range( ref posStart, ref posEnd).Select();
msWord.Selection.Paste();
nvDoc.Bookmarks.Add((string)fieldEnd, ref missing);


etc....
vendredi 13 janvier 2006 à 16:29:09 | Re : optimiser automatisation word

sebmafate

Membre Club Administrateur CodeS-SourceS
je sais pas ce que fait exactement ton code... mais le pilotage de Word est très lent... à une époque je mettait 5min pour un doc word et 10s pour le mm en HTML.

Sébastien FERRAND 
[MVP Visual C#]


Cette discussion est classée dans : ref, missing, bookmarks, nvdoc, fieldend


Répondre à ce message

Sujets en rapport avec ce message

pilotage word / automatisme word => HLP [ par enigmatiqk ] bonjour, désolé du titre, mais je ne voyais pas comment résumé rapidement mon problème.situation: c#.net sur VS 2003, et word 2000.j'arrive a ouvrir u Word printout range [ par fredspv ] Bonjour,J'essaie d'imprimer un fichier de fusion avec la fonction PRINTOUT:object start = "2";<font col Automation Word Windows Server 2003 [ par 2bo ] Bonjour, je développe une application qui produit des documents word et excel. Lorsque j'essaye de créer mes documents excel je n'ai aucun problème, Publipostage [ par luudii34 ] Bonjour, J'aimerai bien faire un publipostage sous Word, j'ai donc utilisé plusieurs tutoriaux pour faire mon code, mais j'ai un souci au niveau de mo Conversion .doc -> .pdf [ par xeon666 ] Bonjour à tous, J'essaye de convertir un .doc vers un .pdf dans mon application, seulement je n'y arrive pas. Ma solution consistait a changer l'imp [WORD] Tableaux et cell.split [ par zainal ] Bonjour à tous,J'ai générer un fichier word avec mon application qui contient un tableau de X lignes et de 4 colonnes. La 4eme colonne a ses li mettre du Text dans les signets [ par kowalska ] Bonjour, Depuis hier j'ai un soucis pour ecrire dans mes signé. J'ai essayé pas mal de script pour le faire me je bloque ca ne marche pas. Je ne s Problème Presse Papier [ par gilletcsteph ] Bonjour,J'utilise pour les besoins d'un projet les composants COM Office.interop.word pour générer des documents Word. Ce n'est pas l'idéal pour faire [C#] SharpDevelop Excel [ par titouneee ] Bonjour,J'utilise excel 2000, j'ai réussi a ajouter la référence Microsoft excel 9.0 object library. (en allant dans "porjets", clic droit sur "refere Echec Exécution code pour créer un document Word [ par dan160 ] Dan Bonjour,Je souhaite exécuter des lignes de code C # qui permettent la génération et l'ouverture d'un fichier Word.La gé


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales