l'asile.fr


Format des données dans le presse-papier Windows

Je développe un programme permettant d'automatiser certaines tâches.

Un partie du programme sert à obtenir, dans une page HTML, un tableau regroupant des informations (obtenu via l'utilisation d'une page PHP).
Je me sers pour cela de objet WebBrowser (je code en C# mais je pense que c'est anecdotique).

Pour aller jusqu'au bout de l'automatisation, je souhaite copier dans le presse-papier la page obtenue.
En effet, en faisant à la main (bouton droit de la souris) un "Selectionner tout" suivi d'un "Copier", je peux ensuite aller sous Word pour coller les données qui apparaissent sous forme d'un tableau.

J'ai essayé différentes méthodes (quelques exemple ci-dessous), mais le résultat que j'obtiens en "collant" est soit le code HTML soit les données séparées par des espaces (donc pas vraiment sous forme de tableau).

J'ai regardé sur l'Internet sans trouver de solution.

Quelqu'un a-t'il une idée pour faire cela ?
Quel format ont les données dans le presse-papier ? Apparemment ce n'est pas du texte bien que si l'on colle sous NotePad ça apparaisse sous forme texte. Mais si l'on colle sous Word ça apparait en tableau (donc peut-être HTML).
Le presse-papier a-t'il les données sous différents format ? Convertit-t'il selon la destination ?

Merci de votre aide.



Exemple de méthodes testées :

Clipboard.SetDataObject(webBrowser1.Document.Body.InnerText);
Clipboard.SetData(DataFormats.Html, webBrowser1.Document.GetElementsByTagName("table"));
Clipboard.SetData(System.Windows.Forms.DataFormats.Dif, webBrowser1.DocumentText);
Clipboard.SetData(DataFormats.Rtf, webBrowser1.Document.Body.InnerHtml);


lundi
12 octobre 2009 à 16:51
 
 

Gingembre
#2 Affreudisiaque

Un stagiaire.


lundi
12 octobre 2009 à 17:35
 
 

Ce qui est possible et élégant c'est d'exporter don tableau dans un format document (xls ou docx dans ton cas) depuis ton application web. Mais bon je vois que t'as une vision centrée "prog windows", que je conchie mais on est pas là pour refaire le monde. Donc le presse papier est converti effectivement selon la destination, plus exactement c'est l'application où tu fais ton coller qui va gérer ça (pas le presse papier en lui même). Regarde donc comment utiliser les fonctions de Word (en VB peut etre ?)...


lundi
12 octobre 2009 à 18:09
 
 

Je rejoins Cyp sur l'utilisation des formats docx, tu peux par exemple utiliser l'api suivant :

url : http://www.nexen.net/actualites/php/18943-php_live_docx_1.0.php


lundi
12 octobre 2009 à 20:28
 
 

Cyp a écrit
Ce qui est possible et élégant c'est d'exporter don tableau dans un format document (xls ou docx dans ton cas) depuis ton application web. Mais bon je vois que t'as une vision centrée "prog windows", que je conchie mais on est pas là pour refaire le monde. Donc le presse papier est converti effectivement selon la destination, plus exactement c'est l'application où tu fais ton coller qui va gérer ça (pas le presse papier en lui même). Regarde donc comment utiliser les fonctions de Word (en VB peut etre ?)...

Le but est de remplacer certaines étapes en finissant par des données dans le presse-papier. C'est ce qui est le plus rapide et efficace à mettre en oeuvre pour la simplification du travail à obtenir.
Personnellement je ne conchie rien. Il m'arrive de coder en C#, en PHP, en C ANSI, en Perl,... J'utilise le langage et la plate-forme qui me semblent les plus adaptés au problème à résoudre sans à priori.

Je ne veux rien exporter ni passer par un format intermédiaire.
J'en suis déjà où les données sont générées (j'ai aussi des camemberts et des histogrammes que je génère par cette application et dont j'arrive à mettre les images dans le presse-papier).
Les utilisateurs n'ont qu'à cliquer sur un bouton dans mon appli puis faire un coller dans leur doc Word.
Je voudrais faire pareil pour cette page web (qui est dans la même application pour éviter la ressaisie de quelques paramètres).
Ils ont déjà la possibilité de faire un "Sélectionner tout", "Copier". Je voudrais leur éviter de faire ça pour que ce soit simplifié au maximum.


lundi
12 octobre 2009 à 23:38
 
 


Répondre au sujet

Vous devez être identifié pour participer à ce topic.