PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Importer des données .xls dans un Fichichier HFSQL (.FIC)
Importer des données .xls dans un Fichichier HFSQL (.FIC)
Iniciado por Stéphane Loïcjh, 15,jul. 2019 17:52 - 3 respuestas
Publicado el 15,julio 2019 - 17:52
Bonjour,

J'aimerais savoir comment je peut importer des données contenue dans un tableau Excel directement dans un Fichier .FIC, le copier coller dans la visionneuse ne prend pas les retours de chariot ni les tabulations. Y a t-il une astuce ?

(j'ai plus de 6000 lignes et 40 colonnes a recopier ^^)

Merci par d'avance.
Publicado el 15,julio 2019 - 19:06
Salut, j'ai fait cela pour générer des envois de mails sans savoir combien de colonnes seraient présentes j'en ai mis 100 au max.
les noms des colonnes seront de la forme RUB X + le nom de la colone excel, si ça peut t'aider. :

// PARTIE UN : IMPORTATION DU FICHIER EXCEL

nIdFic est un entier // identifiant du fichier Excel
nColonne est un entier // colonne en cours
nLigne est un entier // ligne en cours
nPremièreLigne est un entier // première ligne à lire
sLigne est une chaîne // contenu de la ligne en cours
nNbLignes est un entier // nombre de lignes du tableau Excel
nNbColonnes est un entier // nombre de colonnes du tableau Excel
sNomFic est une chaîne // nom du fichier XLS



HSupprimeTout(EQUIV)
HSupprimeTout(FIC)

SI Sais_Fic~="" ALORS
Erreur("Sélectionnez d'abord un fichier Excel !")
RETOUR
FIN

// nom du fichier XLS
sNomFic = Sais_Fic

Sablier(Vrai)

// vérification de l'existence du fichier
SI fTaille(sNomFic)<=0 ALORS
Erreur("Impossible de trouver le fichier spécifié")
RETOUR
FIN

// on tente d'ouvrir le fichier
nIdFic = xlsOuvre(sNomFic)
SI nIdFic=-1 ALORS
Erreur("Impossible d'ouvrir le fichier.",...
"Vérifier qu'il n'est pas déjà ouvert sur une autre application.",xlsMsgErreur(nIdFic))
RETOUR
FIN



// nombre de lignes et de colonnes du tableau Excel
nNbLignes = xlsNbLigne(nIdFic)
nNbColonnes = xlsNbColonne(nIdFic)



// si la première ligne contient les titres de colonne
SI Inter_Titre[1] = Vrai ALORS
nPremièreLigne = 2

SINON
// première ligne contenant les données
nPremièreLigne = 1
FIN


POUR i = 1 A nNbColonnes
//info(i)
{"TABLE_FIC.RUB"+i,indChamp}..Libellé = {"TABLE_FIC.RUB"+i,indChamp}..Nom +RC+ xlsTitreColonne(nIdFic, i)
{"TABLE_FIC.RUB"+i,indChamp}..Largeur = 70
{"TABLE_FIC.RUB"+i,indChamp}..Visible = Vrai

FIN

POUR i = 1 A nNbColonnes

EQUIV.RUBRIQUEFICHIER={"FIC.RUB"+i}..Nom
EQUIV.COLONNEEXCEL=xlsTitreColonne(nIdFic, i)
HAjoute(EQUIV)

FIN


//table prévu avec max 100 colonnes elles sont décrites dans l'analyse en format texte
POUR i = nNbColonnes+1 A 100

{"TABLE_FIC.RUB"+i,indChamp}..Visible = Faux

FIN
// on remplit la table mémoire
POUR nLigne = nPremièreLigne A nNbLignes

sLigne = ""
nColonne=1
POUR nColonne=1 A nNbColonnes

{"FIC.RUB"+nColonne} = xlsDonnée(nIdFic, nLigne, nColonne, Faux)

FIN
FIC.Envoi=Vrai
// on construit la ligne lue

HAjoute(FIC)

FIN
TableAjuste(TABLE_FIC)
TableAffiche(TABLE_FIC)



// fermeture du fichier
xlsFerme(nIdFic)

Sablier(Faux)

JAUGE..BorneMin=0
JAUGE..BorneMax=TABLE_FIC.ENVOI[ligneComptage]

Info("C'est fini, passez à l'étape suivante.")
Miembro registrado
3.846 mensajes
Popularité : +227 (347 votes)
Publicado el 15,julio 2019 - 19:55
Bonjour,
Regarde du côte de https://doc.pcsoft.fr/?1000021197&name=himportexls_fonction, l'intitulé de la question est quasiment le nom de la fonction

--
Il y a peut être plus simple, mais, ça tourne
Publicado el 16,julio 2019 - 16:01
Ah très bien !

Je vais essayer avec ça.

En tout cas merci a vous deux.