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

JavaScript Discussion :

Automatiser un traitement


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2016
    Messages : 112
    Par défaut Automatiser un traitement
    Bonjour j'essaye de copier des données excel d'un classeur vers un appli HTA.
    Du coups j'essaye de coder en Javascript l'opération.
    J'ai trouvé un bout de code qui marche pas mal cependant il implique de faire ligne par ligne...
    Pas tellement pratique ! Voici le code :
    Code html : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <HTML>
    <HEAD>
    <LINK REL="stylesheet" TYPE="text/css" HREF="styles.css">
    <TITLE>
     
    </TITLE>
    </HEAD>
     
    <script LANGUAGE=javascript>
    <!--
     
    // ============== solution accès direct aux lignes de EXCEL de Article 01, 02 et 03 ===================================
     
    function ImportFromXLS_Direct() {
    var Path_file;    // Chemin du fichier
    var oExcel;       // Application Excel
    var oExcelSheet;  // Feuille de calcul
    var oWkBooks;     // Contenu du fichier Excel
     
    // Chemin du fichier EXCEL avec des "/" et non des "\"
    // Le chemin peut aussi être mis en "dur" exemple : Path_file = "c:/mes documents/répertoire/Excel_export.xls"
    var Rep_cour = window.location.href;           // Répertoire de la page htm en cours
    var Index = Rep_cour.lastIndexOf("/");         // Rechecher du dernier séparateur /
    var Rep_cour = Rep_cour.substring(0,Index);    // Répertoire du fichier
    Path_file = "D:/Users/s580385/Desktop/HTML/Gestion donnees stock.xlsx";
     
    // Lancement de EXCEL
    oExcel = new ActiveXObject('Excel.Application');
    oExcel.WorkBooks.Open (Path_file);
     
    // Pour rendre EXCEL visible sinon supprimer la ligne
    oExcel.Visible = true;
     
    document.getElementById("A1").innerHTML = oExcel.ActiveSheet.cells(3,1).value; // Cellule(lignes, colonnes)
    document.getElementById("A2").innerHTML = oExcel.ActiveSheet.cells(4,1).value;
    document.getElementById("A3").innerHTML = oExcel.ActiveSheet.cells(5,1).value;
     
    document.getElementById("Q1").innerHTML = oExcel.ActiveSheet.cells(3,2).value;
    document.getElementById("Q2").innerHTML = oExcel.ActiveSheet.cells(4,2).value;
    document.getElementById("Q3").innerHTML = oExcel.ActiveSheet.cells(5,2).value;
     
    //var total = oExcel.ActiveSheet.cells(2,2).value + oExcel.ActiveSheet.cells(3,2).value + oExcel.ActiveSheet.cells(4,2).value;
    //document.getElementById("TOT").innerHTML = total;
     
    // fermeture de EXCEL sinon supprimer les deux lignes
    oExcel.WorkBooks.Close;
    oExcel.Quit();
    }
     
    //-->
    </script>
     
    <BODY>
    <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" id="AutoNumber1">
      <tr>
        <td width="300">
        <p align="center"><font size="1">Articles</font></td>
        <td width="100">
        <p align="center"><font size="1">Quantites</font></td>
      </tr>
      <tr>
        <td width="300" id="A1"> </td>
        <td width="100" id="Q1" align="center"><p align="center">0</td>
      </tr>
      <tr>
        <td width="300" id="A2"> </td>
        <td width="100" id="Q2" align="center"><p align="center">0</td>
      </tr>
      <tr>
        <td width="300" id="A3"> </td>
        <td width="100" id="Q3" align="center"><p align="center">0</td>
      </tr>
    </table>
    <br>
     
     
    <p><INPUT type="button" value="Importer de EXCEL - direct A1, A2 et A3" id=button1 name=button1 onCLick="ImportFromXLS_Direct()" style="width: 400"></p>
     
     
     
    </BODY>
    </HTML>
    Es ce qu'il y aurait un moyen d'automatiser la création et l'insertion des lignes ? (j'ai essayé avec for, sans succés...)

    Par avance merci de votre aide

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Est-ce que ceci conviendrait ?

    Code html : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <!DOCTYPE html>
    <html lang="fr">
    <head>
      <meta charset="utf-8">
      <link rel="stylesheet" type="text/css" href="styles.css">
      <title>Accès lignes Excel</title>
      <style type="text/css">
     
      #AutoNumber1 { border: solid 1px #111111;
                     border-collapse: collapse;
                     margin-bottom: 2.5em;
      }
      #AutoNumber1 td,
      #AutoNumber1 th { border: solid 1px #111111;
                        padding: 0;
                        text-align: center;
      }
      #AutoNumber1 th { font-size: x-small;
                        font-weight: normal;
                        width: 100px;
      }
      #AutoNumber1 th:first-child { width: 300px;
      }
      #AutoNumber1 td:first-child { text-align: left;
      }
      #button1 { width: 400px;
      }
     
      </style>
      <script type="text/javascript">
     
      "use strict";
     
      // ==== solution accès direct aux lignes de EXCEL de Article par groupes de 3 ====
     
      var Line = 3;
      var TBody;
      var Path_file = "D:/Users/s580385/Desktop/HTML/Gestion donnees stock.xlsx";
     
      function ImportFromXLS_Direct() {
        var oExcel, Row, CellA, CellQ;
     
        // Lancement de EXCEL
        oExcel = new ActiveXObject("Excel.Application");
        oExcel.WorkBooks.Open(Path_file);
     
        // Pour rendre EXCEL visible sinon supprimer la ligne
        oExcel.Visible = true;
     
        if (!TBody) {
          TBody = document.getElementById("AutoNumber1").createTBody();
        }
     
        // Cellule(lignes, colonnes)
        for (var i = 0; i < 3; i++) {
          Row = TBody.insertRow(-1);
          CellA = Row.insertCell(-1);
          CellQ = Row.insertCell(-1);
          CellA.innerHTML = oExcel.ActiveSheet.cells(Line + i, 1).value;
          CellQ.innerHTML = oExcel.ActiveSheet.cells(Line + i, 2).value;
        }
     
        Line += 3;
     
        //var total = oExcel.ActiveSheet.cells(2, 2).value +
        //  oExcel.ActiveSheet.cells(3, 2).value +
        //  oExcel.ActiveSheet.cells(4, 2).value;
        //document.getElementById("TOT").innerHTML = total;
     
        // fermeture de EXCEL sinon supprimer les deux lignes
        oExcel.WorkBooks.Close();
        oExcel.Quit();
      }
     
      </script>
    </head>
    <body>
     
    <table id="AutoNumber1">
      <thead>
        <tr>
          <th scope="col">Articles</th>
          <th scope="col">Quantités</th>
        </tr>
      </thead>
    </table>
     
    <button id="button1" onclick="ImportFromXLS_Direct()">
      Importer de EXCEL - direct 3 lignes
    </button>
     
    </body>
    </html>
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2016
    Messages : 112
    Par défaut
    Bonjour Watilin ton code fonctionne parfaitement !
    Tu as exactement compris ce que je voulais faire
    Du coups j'ai quelques trucs a rajouter mais tu m'as donné une super base de travail !!
    Merci encore, si j'ai des soucis je réactiverai la conversation

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2016
    Messages : 112
    Par défaut
    C'est la version la plus rapide, car je vais copier 6533 lignes et énormément de colonnes ...
    J'avais testé avec <Iframe> en important le classeur entier mais je n'arrivais pas a afficher qu'une seule page ou plage ...

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2016
    Messages : 112
    Par défaut
    J'ai converti mon fichier en page web.htm du coups je peux aller chercher direct l'ID de la table non ?
    Mais comment l'importer dans mon code ?
    J 'essaye d'importer avec iframe comme ceci mais ca ne marche pas ...
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <IFRAME src="Gestion%20donnees%20stock fichiers/sheet001.htm"   scrolling="yes"  width="1400" height="1200"></IFRAME>

  6. #6
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Avec une iframe tu accèdes au contenu via sa propriété contentDocument ; note que tu n’as le droit de le faire que si la page incluse et la page appelante ont le même domaine (comme pour les appels ajax).

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <iframe id="sheet" src="Gestion donnees stock fichiers/sheet001.htm"
        scrolling="yes" width="1400" height="1200"></iframe>
    <script>
    "use strict";
     
    var sheetDocument = document.getElementById("sheet").contentDocument;
     
    sheetDocument.getElementById()
    …
     
    </script>
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

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

Discussions similaires

  1. [Macro] Aide sur fonction eval
    Par bibette dans le forum Macro
    Réponses: 1
    Dernier message: 09/07/2008, 07h54
  2. Aide sur fonction set et handles
    Par occor dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 23/03/2007, 19h17
  3. [AJAX] aide sur fonction ajax navigation
    Par speedylol dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/11/2006, 14h17
  4. [MySQL] besoin d'aide sur fonctions WHERE LIKE
    Par rvm31 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 24/08/2006, 21h37
  5. besoin d'aide sur fonction curseur et procedure
    Par abdel54 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/11/2005, 18h05

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