Source de donnee
Stagiaire WDF
Inscrit:
15/01/2006 14:07
Post(s): 3
bonjour a tous,
comment faire pour importe un fichier excel dans une source de donnee, et la transferer dans une vue ou une table.

Contribution le : 19/01/2006 18:27
Créer un fichier PDF de la contribution Imprimer


Re: Source de donnee
Anonyme
J'avais ça sous la main. Fonctionne impec.
1/ Sélectionnez le fichier Excel qui contient les données.
- fonction fSélecteur()
2/ Décochez l'option si la feuille Excel est sans titres de colonnes.
3/ Cliquez sur ...
Attention : importation temporaire :
- pour sauvegarde provisoire :voir 4
- pour transfère définitif : voir 5
4/ En cliquant sur "Export vers Excel" vous modifiez la feuille Excel avec le contenu ci-dessus
5/ Sélectionnez le fichier HyperFile à compléter


//////////////////////////////////////////////////////
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
sNomFic est une chaîne // nom du fichier XLS
sDonnée est une chaîne
nNbColonnes = 0 // Nombre colonnes du tableau Excel

//--------- Champ ou est stocké le nom du fichier XLS
SI Sais_Fic1~="" ALORS
Erreur("Sélectionnez d'abord un fichier Excel !")
RETOUR
SINON
sNomFic = Sais_Fic1
FIN


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
//--------- On vide la table
TableSupprimeTout(TableImport)

//--------- On initialise le nom des colonnes
POUR nColonne=1 A NBCOL
TableImport[1][nColonne]..Libellé = ""
{"Colonne"+nColonne}..Visible=Vrai
FIN
//--------- Nombre de lignes et de colonnes du tableau Excel
// la variables nNbColonnes est générale car sert
// aussi au transfert
// dans le fichier HyperFile
nNbLignes = xlsNbLigne(nIdFic)
nNbColonnes = xlsNbColonne(nIdFic)
//--------- Si la première ligne contient les titres de colonne
SI Inter_Titre[1] = Vrai ALORS
// On modifie les titres de colonne
POUR nColonne=1 A nNbColonnes
TableImport[1][nColonne]..Libellé = xlsDonnée(nIdFic, 1, nColonne)
FIN
// Première ligne contenant les données
nPremièreLigne = 2
SINON
// Première ligne contenant les données
nPremièreLigne = 1
FIN
//--------- On remplit la table mémoire
POUR nLigne = nPremièreLigne A nNbLignes
sLigne = ""
TableAjouteLigne(TableImport)
// On construit la ligne lue
POUR nColonne = 1 A nNbColonnes
sDonnée = xlsDonnée(nIdFic, nLigne, nColonne, Faux)
{"Colonne"+nColonne}[TableOccurrence(TableImport)]= sDonnée
// si c'est un numérique
SI NumériqueVersChaine(Val(sDonnée))=sDonnée ALORS
{"Colonne"+nColonne}..CadrageHorizontal=iDroite
SINON
{"Colonne"+nColonne}..CadrageHorizontal=iGauche
FIN
FIN
FIN

//--------- Les autres colonnes sont invisibles
POUR nColonne = nNbColonnes+1 A NBCOL
{"Colonne"+nColonne}..Visible=Faux
FIN
FenRepeint()
//--------- Fermeture du fichier
xlsFerme(nIdFic)

Sablier(Faux)


// 5/- Pour la récup dans un HF ici 2 fichiers
// CptesGénéraux et CptesIndividuel

i, j, nPos sont des entiers
sNomCol,sLigne,sData sont des chaînes

//--------- Parcours de la table
nPos = TableSelect(TableImport)
SI nPos < 1 ALORS nPos = 1
POUR i = 1 A TableImport..Occurrence
// Sélection de la ligne
TableSelectPlus(TableImport,i)
//--------- Pour chaque colonne
sLigne=""
POUR j = 1 A nNbColonnes
sNomCol=TableEnumèreColonne(TableImport, j)
sLigne+={sNomCol}[i]+"/"
FIN
//--------- Transfert dans le fichier choisi
SI ChaîneOccurrence(Sais_Fic1,"balgenerale") > 0 ALORS
CptesGénéraux.NumCpteGen=ExtraitChaîne(sLigne,1,"/",DepuisDébut)
sLigne = Droite(sLigne,Taille(sLigne)-Position(sLigne,"/",DepuisDébut))
CptesGénéraux.LibCpteGen=ExtraitChaîne(sLigne,1,"/",DepuisDébut)
HAjoute(CptesGénéraux)
FIN
SI ChaîneOccurrence(Sais_Fic1,"balfournisseurs") > 0 ALORS
CptesIndividuel.NumCpteInd =ExtraitChaîne(sLigne,1,"/",DepuisDébut)
sLigne = Droite(sLigne,Taille(sLigne)-Position(sLigne,"/",DepuisDébut))
CptesIndividuel.LibCpteIndivi =ExtraitChaîne(sLigne,1,"/",DepuisDébut)
sLigne = Droite(sLigne,Taille(sLigne)-Position(sLigne,"/",DepuisDébut))
CptesIndividuel.NumCpteGen=ExtraitChaîne(sLigne,1,"/",DepuisDébut)
HAjoute(CptesIndividuel)
FIN
FIN

Contribution le : 30/01/2006 22:52
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2