Publié le :
Administration CREATION_INTERNE

Lancement automatique d'Excel via DDE

Ce code est également disponible en : Deutsch English Español
Attention : Ce code nécessite des droits administrateur.
Ce programme utilise le moteur DDE (Dynamic Data Exchange) pour tenter d'établir une communication avec Excel. Si le flux ne peut pas être ouvert (indiquant qu'Excel est fermé), le script utilise la fonction `system` pour exécuter la commande DOS 'Start Excel'. Il inclut une boucle d'attente pour vérifier le lancement. NOTE : Ce code est spécifique aux environnements Windows et repose sur la technologie DDE obsolète ; il n'est pas fonctionnel dans un environnement SAS© Viya 4 standard sous Linux.
Analyse des données

Type : CREATION_INTERNE


Aucune donnée externe lue. Le script gère uniquement des interactions système et des pointeurs de fichiers (fileref).

1 Bloc de code
DATA STEP
Explication :
Vérifie l'accessibilité du serveur DDE Excel. Si inactif, lance Excel via la commande système et attend jusqu'à 5 secondes que le service soit disponible.
Copié !
1OPTIONS NOXSYNC NOXWAIT;
2filename cmdexcel DDE 'EXCEL|SYSTEM'; /* Fileref for Excel System */
3 
4DATA _null_;
5 fid = fopen('cmdexcel','S'); /* Check if Excel is open */
6 IF fid le 0 THEN
7 DO; /* Excel is not open, open Excel via Windows registry */
8 rc=system("Start Excel"); /* DOS command to open Excel*/
9 start = datetime(); /* Note start time */
10 stop = start + 5; /* Max time to try opening */
11 DO while (fid le 0); /* Loop while Excel opens */
12 fid = fopen('cmdexcel','S'); /* Check if Excel is open */
13 time = datetime(); /* Reset current time */
14 IF time ge stop THEN
15 fid = time; /* Set FID to terminate loop*/
16 END; /* do while (fid le 0); */
17 END; /* Excel is not open, open Excel via Windows registry */
18 rc = fclose(fid); /* Close fileopen on EXCEL */
19RUN;
2 Bloc de code
COMMAND X
Explication :
Méthode alternative et directe pour lancer Excel via la commande X (shell escape).
Copié !
1options noxwait noxsync;
2 x start excel;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Banner
Le Conseil de l'Expert
Expert
Stéphanie
Spécialiste Machine Learning et IA.
« Bien que cette méthode soit une référence pour l'automatisation locale sous Windows, elle appartient à une ère technologique en retrait. La technologie DDE est aujourd'hui considérée comme obsolète et est totalement incompatible avec les environnements Linux ou SAS Viya. Pour vos projets futurs devant être portables sur le Cloud, je vous recommande de privilégier les bibliothèques SAS/ACCESS to PC Files (via PROC EXPORT ou le moteur xlsx) qui ne dépendent pas de la présence physique d'Excel sur le serveur. »