1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WD Lecture fichier EXCEL sur plusieurs lignes

Discussion dans 'Windev' créé par WindevWindev, Juil 3, 2024.

Tags:
  1. WindevWindev

    WindevWindev Member

    Inscrit:
    Juil 13, 2019
    Messages:
    36
    J'aime reçus:
    2
    Bonjour a tous
    J'ai un fichier excel dont les informations a extraire sont sur 2 lignes.

    exemple
    1-DONNEE 28/06/2024 VRI Normal Oui
    2-NINO112
    3-DONNEE 28/06/2024 VRI Normal Oui
    4-NINO112

    Je souhaite enregistrer les lignes 1 et 2 dans ma table windev en une seule ligne

    exemple
    1-DONNEE 28/06/2024 VRI Normal Oui NINO112
    2-DONNEE 28/06/2024 VRI Normal Oui NINO112

    Merci d'avance
     
    Tags:
  2. Isabelle

    Isabelle Active Member

    Inscrit:
    Jan 18, 2018
    Messages:
    331
    J'aime reçus:
    234
    Puisque c'est une ligne sur deux, si tu fais un petit effort de réflexion, tu devrais pouvoir t'en sortir sans nous.

    Mais tu préfères peut-être qu'un autre de mette la honte.
     
  3. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,921
    J'aime reçus:
    1,557
    Salut
    Personnellement je me dit
    Je commence par
    Je met la ligne 1 et 2 dans une variable puis je fais une concaténation
    Puis je fais une boucle pour les autres lignes 2 à 2
    Je vois déjà dans un champ table ou zr ce que ça donne.
    Ou sinon je réfléchis à mon algo.
    Mais comme dit

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    rien de compliqué.
     
    Gemini1961 et Isabelle aiment ça.
  4. Isabelle

    Isabelle Active Member

    Inscrit:
    Jan 18, 2018
    Messages:
    331
    J'aime reçus:
    234
    Tu vois

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , CQFD.
    Tu as de la chance : tu tombes sur popoy qui sait qu'il vaut mieux apprendre à pêcher plutôt que de filer du poisson.
    A toi de jouer, tu as toutes les billes.
     
    WX1331 apprécie ceci.
  5. warjoen

    warjoen Active Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    157
    J'aime reçus:
    121
    // Function to read an Excel file and merge rows
    PROCEDURE MergeExcelRows(sFilePath)
    // Declare variables
    xlsDoc is object ExcelDocument
    xlsSheet is object ExcelWorksheet
    sRow1, sRow2, sCombined is string
    nRow, nMaxRow is int

    // Open the Excel file
    xlsDoc = ExcelOpen(sFilePath)
    IF ErrorOccurred THEN
    Error("Cannot open Excel file: " + sFilePath)
    RETURN
    END

    // Access the first sheet
    xlsSheet = xlsDoc.ExcelWorksheet(1)

    // Get the maximum number of rows
    nMaxRow = xlsSheet..NbRow

    // Loop through each row, stepping by 2 rows at a time
    nRow = 1
    WHILE nRow <= nMaxRow
    // Read two consecutive rows
    sRow1 = xlsSheet.Cells[nRow, 1]
    sRow2 = xlsSheet.Cells[nRow + 1, 1]

    // Merge the rows
    sCombined = sRow1 + " " + sRow2

    // Save the merged result in the table (replace YourTable with the actual table name)
    HReset(YourTable)
    YourTable.Data = sCombined
    HAdd(YourTable)

    // Move to the next pair of rows
    nRow += 2
    END

    // Close the Excel file
    ExcelClose(xlsDoc)
    END


    Call Procedure
    MergeExcelRows("C:\path\to\your\file.xlsx")
     
    Gemini1961 apprécie ceci.
  6. warjoen

    warjoen Active Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    157
    J'aime reçus:
    121
    Mem_SheetNumber is int = 1
    EDT_XLSFile is string = "d:/test.xlsx"
    EDT_ExcelPassword is string

    IF Mem_SheetNumber = 0 THEN
    NextTitle(" WARNING ...!")
    Info("First, Please Input Worksheet Name")
    RETURN
    END

    // Open Excel
    MyExcel is xlsDocument
    MyExcel = xlsOpen(EDT_XLSFile,xlsWrite,EDT_ExcelPassword)
    IF ErrorOccurred = True THEN
    Info(ErrorInfo())
    RETURN
    END

    // Change Active Sheet
    IF xlsCurrentWorksheet(MyExcel, Mem_SheetNumber) = True THEN
    //Change Worksheet Success

    ELSE
    Error("The selected file does not include worksheet : "+MyExcel..WorksheetName)
    RETURN
    END

    i is int=1
    srow1 is string
    srow2 is string
    Maxnumber is int = MyExcel..NumberRow
    Combined is string
    MyCellXLS is string
    WHILE i <= Maxnumber
    MyCellXLS = "A"+i
    srow1 = MyExcel[xlsNameToCoordinates(MyCellXLS, xlsRowNum),xlsNameToCoordinates(MyCellXLS, xlsColumnNum)]

    i ++
    MyCellXLS = "A"+i
    srow2 = MyExcel[xlsNameToCoordinates(MyCellXLS, xlsRowNum),xlsNameToCoordinates(MyCellXLS, xlsColumnNum)]

    Combined = srow1 + " " + srow2
    Trace(Combined) // save to table
    i ++
    END

    xlsClose(MyExcel)
     
    #6 warjoen, Juil 4, 2024
    Dernière édition: Juil 4, 2024
  7. Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    582
    J'aime reçus:
    325
    Merci de baliser le code.
     
    WX1331 apprécie ceci.
  8. taoufik1_1

    taoufik1_1 Member

    Inscrit:
    Jan 2, 2018
    Messages:
    52
    J'aime reçus:
    34
    Bonjour

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    retour chariot
    dans excel est represente par code ascii 10.

    ca sera plus simple si vous remplacez le Caract(10) par 1 espace blanc

    // L'exemple de Mr

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    sRow1 = xlsSheet.Cells[nRow, 1]
    // Merge the rows
    sCombined = Remplace( sRow1, Caract( 10 ), " ")
    //
    BonDev
     
    Gemini1961 et WX1331 aiment ça.

Partager cette page

Chargement...