IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Collections et chargement dans Excel (sans csv) ? [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Novembre 2004
    Messages : 388
    Par défaut Collections et chargement dans Excel (sans csv) ?
    Bonjour,

    J'aimerais ne pas faire de fichier pour faire le chargement dans Excel, actuellement j'utilise un fichier csv avec le code ci dessous
    $item.FullName = le fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
            $excel = New-Object -ComObject excel.application
            $excel.visible = $true
            $workbook = $excel.Workbooks.Add(1)
            $worksheet = $workbook.worksheets.Item(1)
            $worksheet.Name = $BaseSheetName
    
        $worksheet = $workbook.worksheets[$BaseSheetName]
        $TxtConnector = ("TEXT;" + $item.FullName)
        $Connector = $worksheet.QueryTables.add($TxtConnector, $worksheet.Range("A1"))
        
        $query = $worksheet.QueryTables.item($Connector.name)
    
        $query.TextFileOtherDelimiter = $Excel.Application.International(5)
    
        $query.TextFileParseType = 1
        $query.TextFileColumnDataTypes = , 2 * $worksheet.Cells.Columns.Count
        $query.AdjustColumnWidth = 1
    
    
        $query.Refresh() | Out-Null
    

    J'aurais bien pensé a un truc dans le style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     $table = @()
    for ($i = 0; $i -lt $Data.Count; $i++) {
        $Table += [PSCustomObject]@{
            A = $Name
            B = "$i"
            Data = $Data[$i]
        }
    }
    # Comme le code ci-dessus mais en faisant un changement avec :
    $TxtConnector = ("TEXT;" + $table)

    J'ai bien fait plusieurs tentative mais sans réussite

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Regarde si ce module répond à ton besoin.

  3. #3
    Membre éprouvé
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Novembre 2004
    Messages : 388
    Par défaut
    J'avais effectivement vu ça mais j'ai pas les droits d'installation sur cette machine, il y avait pourtant rien de plus simple que ce module dommage.

    je recherche d'autre alternative sur Google mais il parle tous du module Excel ...

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Je n'ai jamais eu ce besoin, dans ce cas je recherche ce qui peut être possible.
    Par exemple avec les mots clés: "c# worksheet QueryTables Recordset"

    La méthode Querytables peut charger à partir d'un Objet Recordset ADO.
    Mais je ne sais pas si cela nécessite une installation de driver...
    Voir aussi Datatable vers RecordSet

  5. #5
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2016
    Messages : 18
    Par défaut
    Je ne sais pas exactement ce que tu essaie de faire, mais tu peux peut-être faire un truc comme ça :

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $BaseSheetName = "test"
     
    $excel = New-Object -ComObject excel.application
    $excel.visible = $true
    $workbook = $excel.Workbooks.Add(1)
    $worksheet = $workbook.worksheets.Item(1)
    $worksheet.Name = "$BaseSheetName"
     
     
    $table = @(
        @("A1","B1","C1"),
        @("A2","B2"),
        @("A3","B3","","D3")
    )
     
    for ($i = 1; $i -le $table.Length; $i++) {
        for ($j = 1; $j -le $table[$i-1].Length; $j++) {
            $worksheet.Cells.Item($i, $j) = $table[$i-1][$j-1]
        }
    }

  6. #6
    Membre éprouvé
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Novembre 2004
    Messages : 388
    Par défaut
    Je cherche a faire cette manip pour ne pas polluer la machine de fichiers qui ne serviront certainement plus.
    (serveur ayant pas beaucoup de place)

    merci Frammrock je vais tester ça
    Merci Laurent je vais voir ça (l'article)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Collecte de données dans Excel depuis Powerpoint
    Par Alexou17 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 18/04/2018, 15h07
  2. [POI] Ecrire dans Excel sans changer le format du fichier
    Par marsupilami34 dans le forum Documents
    Réponses: 3
    Dernier message: 17/11/2017, 10h36
  3. [Toutes versions] L'équivalent d'un "switch" dans Excel, sans VBA ?
    Par Roln1k dans le forum Excel
    Réponses: 3
    Dernier message: 10/02/2017, 17h58
  4. [XL-2007] addition dans excel sans texte
    Par arianefurer69 dans le forum Excel
    Réponses: 5
    Dernier message: 04/04/2011, 21h17
  5. Ecrire dans Excel sans MS Excel sur le poste
    Par olivv dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 13/08/2009, 11h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo