|
Copie HTML vers Excel xlsDocument |
Débuté par Mathieu, 23 jan. 2025 10:46 - Aucune réponse |
| |
| | | |
|
| |
Posté le 23 janvier 2025 - 10:46 |
Bonjour, j'ai un code Windev me permettant d'ouvrir des fichiers HTML pré-sauvegarder dans un dossier spécifiques et les copier dans un fichier Excel déjà existant (avec des dizaines de feuilles, mais j'arrive a copié ce que je veux à la bonne feuille pas de soucis la dessus). Toutefois, je galère ENORMEMENT a copier le fichier Html dans mon fichier excel (créer via un xlsDocument). Voici le code :
Procedure OpenAllHtmlFiles(sDossierHTML est une chaîne, sFichierExcel est une chaîne)
arrFichiersHTML est un tableau dynamiquedynamique de chaînes = ListeHtmlFiles(sDossierHTML) sTexteBrut est une chaîne = Remplace(sTexteBrut, "<font face="" >", "")
SI TableauOccurrence(arrFichiersHTML) = 0 ALORS Info("Aucun fichier HTML à traiter dans le dossier : " + sDossierHTML) RETOUR FIN
SI PAS fFichierExiste(sFichierExcel) ALORS Info("Le fichier Excel spécifié n'existe pas : " + sFichierExcel) RETOUR FIN
xlsFichier est un xlsDocument = xlsOuvre(sFichierExcel) SI ErreurDétectée ALORS Info("Impossible d'ouvrir le fichier Excel : " + sFichierExcel) RETOUR FIN
nNbFeuilles est un entier = xlsNbFeuille(xlsFichier)
tabFeuilles est un tableau associatif d'entiers
POUR i = 1 À nNbFeuilles SI xlsFeuilleEnCours(xlsFichier, i) ALORS sNomFeuille est une chaîne = xlsFichier.NomFeuille tabFeuilles[sNomFeuille] = i FIN FIN
POUR TOUT sFichierHTML de arrFichiersHTML sNomFichier est une chaîne = fExtraitChemin(sFichierHTML, fFichier) sDateFeuille est une chaîne = ExtraitChaîne(sNomFichier, 3, "_") + "_" + ExtraitChaîne(sNomFichier, 4, "_") + "_" + ExtraitChaîne(sNomFichier, 5, "_")
SI tabFeuilles[sDateFeuille]..Existe ALORS nIndexFeuille est un entier = tabFeuilles[sDateFeuille] SI xlsFeuilleEnCours(xlsFichier, nIndexFeuille) ALORS sContenuHTML est une chaîne = fChargeTexte(sFichierHTML) SI ErreurDétectée ALORS Trace("Erreur lors de la lecture du fichier HTML : " + sFichierHTML) CONTINUE FIN InsérerTableauHtmlDansExcel(sContenuHTML, xlsFichier, 20)
SI ErreurDétectée ALORS Trace("Erreur lors de l'écriture dans la feuille " + sDateFeuille) CONTINUE FIN FIN SINON Trace("Aucune feuille trouvée pour " + sDateFeuille + ". Fichier ignoré.") FIN FIN
xlsSauve(xlsFichier) xlsFerme(xlsFichier) Info("Traitement terminé.")
Ce que j'essaie de faire, c'est cette fonction : "InsérerTableauHtmlDansExcel" (je vous met un des NOMBREUX code que j'ai essayé, mais celui ci non plus ne fonctionne pas) :
Procedure InsérerTableauHtmlDansExcel(sContenuHTML est une chaîne, xlsFichier est un xlsDocument, nLigneDépart est un entier)
htmlDoc est un htmlDocument htmlDoc = HTMLOuvre(sContenuHTML)
arrTableaux est un tableau de htmlNoeud = htmlDoc.ChercheElémentParBalise("table")
SI TableauOccurrence(arrTableaux) = 0 ALORS Trace("Aucun tableau trouvé dans le contenu HTML.") RETOUR FIN
nLigneActuelle est un entier = nLigneDépart POUR TOUT htmlTableau de arrTableaux arrLignes est un tableau de htmlNoeud = htmlTableau.NoeudFils POUR TOUT htmlLigne de arrLignes SI htmlLigne..NomBalise = "tr" ALORS tdCells est un tableau de htmlNoeud = htmlLigne.NoeudFils colonne est un entier = 1 POUR TOUT htmlCellule de tdCells SI htmlCellule..NomBalise = "td" OU htmlCellule..NomBalise = "th" ALORS sTexteCellule est une chaîne = HTMLVersTexte(htmlCellule..HTMLInterne) xlsFichier[nLigneActuelle, colonne] = sTexteCellule colonne++ FIN FIN nLigneActuelle++ FIN FIN FIN
Dans mon fichier HTML, j'ai des tableaux (pas que mais pas mal), ce que je voudrais c'est l'afficher sous forme de tableaux aussi dans mon Excel mais avec les cellules excel evidemment. Si quelqu'un peut m'aider, je vous remercie par avance, si vous avez des questions, n'hésitez pas à me demander. |
| |
| |
| | | |
|
| | | | |
| | |
|