Question Export vers XLS

Plus d'informations
il y a 16 ans 8 mois #806 par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Export vers XLS Résolu
L'export au format CSV n'est pas très compatible avec l'idée même d'un formattage tel que tu le décris, puisque le format CSV est simplement une concaténation de champs séparés par une virgule.

As-tu un exemple précis montrant comment tu récupères tes données et quel format tu voudrais qu'elles aient dans le fichier final?

Janel

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 8 mois #807 par bordin
Réponse de bordin sur le sujet Re:Export vers XLS Résolu
janel écrit:

L'export au format CSV n'est pas très compatible avec l'idée même d'un formattage tel que tu le décris, puisque le format CSV est simplement une concaténation de champs séparés par une virgule.

As-tu un exemple précis montrant comment tu récupères tes données et quel format tu voudrais qu'elles aient dans le fichier final?

Janel


Salut Janel,
Comme exemple il y a:
Transformation de l'espace disque en Mo:

[code:1]get-content $args[0] | foreach {
gwmi win32_logicaldisk -filter \"DriveType=3\" -computer $_} |
format-table @{l=\"Nom\";e={$_.__Server}},
@{l=\"Volume\";e={$_.DeviceId}},
@{l=\"Total (Mo)\";e={[math]::round($_.Size/1MB«»)}},
@{l=\"Libre (Mo)\";e={[math]::round($_.FreeSpace/1MB«»)}} –a [/code:1]
Ping: ici je voudrais avoir le StatusCode à Success au lieu de 0 par exemple.

[code:1]foreach-object {
get-wmiobject -Class Win32_PingStatus -filter (\"Address='\" + $_ + \"'\"«»)
} | select Address,ProtocolAddress,StatusCode | export-csv $SortieCheckServeurs -notype -force[/code:1]

Message édité par: camilleB , à: 1/08/07 19:56<br><br>Message édité par: Arnaud, à: 1/08/07 22:31

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 8 mois #808 par bordin
Réponse de bordin sur le sujet Re:Export vers XLS Résolu
Salut,
C'est peut être une solution!
Rediriger la sortie de la console vers un fichier texte. Ensuite traiter chaque ligne du fichier en remplaçant les espaces par des virgules.
Ca devrait donner un bon fichier csv!

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 8 mois #809 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Re:Export vers XLS Résolu
C'est un peu tordu comme idée que de vouloir envoyer dans Excel un affichage de console. Pourrais tu nous expliquer quel en est l'intérêt ? :huh:

Et pourquoi pas ne pas renvoyer tout cela dans Word et convertir ensuite en PDF ?

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 8 mois #812 par bordin
Réponse de bordin sur le sujet Re:Export vers XLS
Arnaud écrit:

C'est un peu tordu comme idée que de vouloir envoyer dans Excel un affichage de console. Pourrais tu nous expliquer quel en est l'intérêt ? :huh:

Et pourquoi pas ne pas renvoyer tout cela dans Word et convertir ensuite en PDF ?

Arnaud


Bonjour,
Ben je vois que je complique les choses!
En fait pour moi comme l'affichage des données à la console est déjà formatté comme je le souhaite. L'idée était de simplement tout reprendre sans plus. As tu déjà exporter vers word? Peux tu m'expliquer la démarche stp?

MErci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 8 mois #813 par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Export vers XLS
Ok, je comprends: ce que tu veux, c'est exporter en CSV une version modifiée des données, c'est-à-dire avec des noms de champs personnalisés et des valeurs calculées à la volée, bref tout ce qu'on peut faire avec format-table.

Sauf que format-table émet des objets de type FormatEntryData et que ces objets ne contiennent plus les données d'origine, ou alors sous une forme qui ne se prête pas facilement à l'exportation. Le but de toute commandelette format-* est de produire un résultat final valable pour un affichage, pas pour un traitement ultérieur.

La solution s'appelle select-object (ou select de son petit nom). Select permet d'extraire une partie des objets qu'on lui passe et de faire certaines manipulations avec. Entre autres, on peut modifier la présentation des propriétés d'une façon très proche de celle qu'on connaît avec format-table:

[code:1]PS&gt; gwmi win32_logicaldisk |
&gt;&gt; select @{n=\&quot;Nom\&quot;;e={$_.__Server}},
&gt;&gt; @{n=\&quot;Volume\&quot;;e={$_.DevideID}},
&gt;&gt; @{n=\&quot;Total (Mo)\&quot;;e={[math]::round($_.Size/1MB )}},
&gt;&gt; @{n=\&quot;Libre (Mo)\&quot;;e={[math]::round($_.FreeSpace/1MB )}}
&gt;&gt;[/code:1]
Dans cet exemple, les deux principales différences avec format-table sont:

- le remplacement de l=\&quot;nom\&quot; par n=\&quot;nom\&quot;. Dans format-table, \&quot;l\&quot; est un raccourci pour \&quot;label\&quot;, ici le \&quot;n\&quot; est un raccourci pour \&quot;name\&quot;.

- la suppression de -a à la fin. Select n'est pas fait pour formatter mais pour présenter les données, donc la notion de formattage \&quot;auto\&quot; n'a pas de sens.

Le résultat de la commande ci-dessus devrait être très proche de ce que tu obtiens avec format-table. La grosse différence, c'est que ce résultat-là est exportable dans un fichier CSV:

[code:1]PS&gt; gwmi win32_logicaldisk |
&gt;&gt; select @{n=\&quot;Nom\&quot;;e={$_.__Server}},
&gt;&gt; @{n=\&quot;Volume\&quot;;e={$_.DevideID}},
&gt;&gt; @{n=\&quot;Total (Mo)\&quot;;e={[math]::round($_.Size/1MB )}},
&gt;&gt; @{n=\&quot;Libre (Mo)\&quot;;e={[math]::round($_.FreeSpace/1MB )}} |
&gt;&gt; export-csv LogicalDisks.csv -notype
&gt;&gt;[/code:1]Est-ce que c'est bien ce que tu cherches à faire?

Janel

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.077 secondes
Propulsé par Kunena