PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Pilotage excel
Pilotage excel
Débuté par Elliot.ly, 13 jan. 2005 11:22 - Aucune réponse
Posté le 13 janvier 2005 - 11:22
bonjour à tous
j'avais poster une message concernant l'exportation excel
un personne m'a répondu (philip) avec le code plus bas en utilisant les objets OLE
j'ai utilisé plutôt les API windows pour l'exportation excel mais j'aurais aimé savoir comment je pourrais faire pour piloter la fenêtre excel que j'aurais ouverte grâce au API.

j'aimerais changer les formats de cellules.

Merci
Elliot
//***************************************
NomTable est une chaîne

i,j,k sont des entiers
tNumColonne est un entier

Sablier(Vrai)

xl est un objet OLE "Excel.Application"

xl>>Visible = OLEVrai // Rend Excel Visible
xl>>SheetsInNewWorkbook = 5 // On demande 5 feuilles
xl>>Workbooks>>Add() // Ajoute un nouveau classeur


// On sauvegarde la simulation

NomTable = "DETAILS"
xl>>Worksheets(1)>>Name = Gauche(SansEspace(SELSITE[SELSITE]),3
1)
xl>>Worksheets(1)>>Activate()

k = 1
i = 1
tNumColonne = 0
POUR j=1 A TableOccurrence(NomTable,2) // Envoyer les entêtes de colonne
SI {NomTable}[i][j]..Visible=Vrai ALORS
tNumColonne++
xl>>Range(Caract(64+tNumColonne)+"1")>>Value = {NomTable}[i][j]..Libellé
xl>>Range(Caract(64+tNumColonne)+"1")>>Font>>Bold = Vrai
xl>>Range(Caract(64+tNumColonne)+"1")>>Font>>ColorIndex = 2
xl>>Range(Caract(64+tNumColonne)+"1")>>Interior>>ColorIndex = 52
xl>>Range(Caract(64+tNumColonne)+"1")>>HorizontalAlignment = -4108
xl>>Range(Caract(64+tNumColonne)+"1")>>VerticalAlignment = -4108
FIN
Jauge(k,TableOccurrence(NomTable,2) + TableOccurrence(NomTable)); k = k + 1
FIN

tNumColonne = 0

// Envoi des informations ligne par ligne

POUR i=1 A {NomTable}..Occurrence
tNumColonne = 0
POUR j=1 A TableOccurrence(NomTable,2)
SI {NomTable}[i][j]..Visible=Vrai ALORS
tNumColonne++
xl>>Range(Caract(64+tNumColonne)+(i+1))>>Value = {NomTable}[i][j]
xl>>Range(Caract(64+tNumColonne)+(i+1))>>Borders(7)>>LineStyle = 1
xl>>Range(Caract(64+tNumColonne)+(i+1))>>Borders(8)>>LineStyle = 1
xl>>Range(Caract(64+tNumColonne)+(i+1))>>Borders(9)>>LineStyle = 1
xl>>Range(Caract(64+tNumColonne)+(i+1))>>Borders(10)>>LineStyle = 1
SI tNumColonne >= 6 ALORS
xl>>Range(Caract(64+tNumColonne)+(i+1))>>HorizontalAlignment = -4152
xl>>Range(Caract(64+tNumColonne)+(i+1))>>NumberFormat = "##0,000"
FIN
SI j = TableOccurrence(NomTable,2) -2 ALORS xl>>Range(Caract(64+tNumColonne)+(i+1))>>NumberFormat = "##0"
SI j = TableOccurrence(NomTable,2) -1 ALORS xl>>Range(Caract(64+tNumColonne)+(i+1))>>NumberFormat = "##0,00"
SI j = TableOccurrence(NomTable,2) ALORS xl>>Range(Caract(64+tNumColonne)+(i+1))>>NumberFormat = "##0,00"
FIN
Jauge(k,TableOccurrence(NomTable,2) + TableOccurrence(NomTable)); k = k + 1
FIN
FIN

POUR tNumColonne = 1 A 25
xl>>Columns(Caract(64+tNumColonne))>>EntireColumn>>AutoF
it()
FIN

Jauge()
Sablier(Faux)
//********************************************************