Bonjour,
Est ce que quelqu'un a trouvé la solution pour ne pas avoir de message d'avertissement à l'ouverture d'un fichier excel
avec le tagset XLP (excelxp)?
( sachant que c'est une fichier xml qui est en fait generé..)
Bonjour,
Est ce que quelqu'un a trouvé la solution pour ne pas avoir de message d'avertissement à l'ouverture d'un fichier excel
avec le tagset XLP (excelxp)?
( sachant que c'est une fichier xml qui est en fait generé..)
Salut,
Pourrais-tu à l'occasion mettre ici le message en question?
Bonjour,
merci Stackware !
Voilà en lançant se code:
(renseigner le chemin de sortie au préalable)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 /*renseigner le chemin du fichier excel */ %let path= chemin à renseigner /test.xls ; data test ; input message $15.; cards; Hello world ; run; ods tagsets.excelxp file="&path." options(zoom='80' sheet_name=' test ' autofit_height='yes'); proc report data=test nowindows split='*' ; column message; define message / display 'message' WIDTH=20 flow center style={just=c}; compute before _page_ / center ; line 'TEST' ; endcomp; run; quit; ods tagsets.excelxp close; ods listing;
vous aurez ce message :
Le format du fichier que vous tentez d'ouvrir est différent de celui spécifié par l’extension de fichier.....
Bonjour,
Ça me rappelle un peu le cas de quelqu'un qui passerait d'une exécution locale Windows vers un serveur Linux/Unix pour faire la même chose. Assez récemment SAS a mis au point les bibliothèques nécessaires pour faire des fichiers Excel, mais auparavant il fallait un PC File Server (qui traduisait les fichiers Excel issus d'Unix/Linux) en format utilisable par un pc Win7/64 avec Excel 2010 ou 2013 dessus.
Suis-je loin ou tous près?
[edit] Colle aussi la log du programme stp [/edit]
[re-Edit] plusieurs cas se présentent pour ton problème. Il va falloir me dire la version de SAS, la version de EGuide (si utilisé), et si le fichier qui sort est gros ou pas (nb de lignes) [/Re-Edit]
Il y a du vrai dans ce que tu dit !
Mais je sais pas si c'est un hasard.
voici la log, c'est sous EG 5.1 avec du SAS 9.3 et Windows 7.
Le serveur est installé sur une machine sous linux.
J'ai cru comprendre que les fichiers excel généré par ce tagset étaient en fait des fichiers XML, mais que tu peux lire sous excel, d'ou le message d'avertissement.
voici la log :
1 Le Système SAS 13:56 Wednesday, March 4, 2015
1 ;*';*";*/;quit;run;
2 OPTIONS PAGENO=MIN;
3 %LET _CLIENTTASKLABEL='Programme';
4 %LET _CLIENTPROJECTPATH='';
5 %LET _CLIENTPROJECTNAME='';
6 %LET _SASPROGRAMFILE=;
7
8 ODS _ALL_ CLOSE;
9 OPTIONS DEV=ACTIVEX;
10 GOPTIONS XPIXELS=0 YPIXELS=0;
11
12 GOPTIONS ACCESSIBLE;
13
14 /*renseigner le chemin du fichier excel */
15 %let path=/sas/rep1/test.xls ;
16
17 data test ;
18 input message $15.;
19 cards;
NOTE: The data set WORK.TEST has 1 observations and 1 variables.
NOTE: L'étape DATA used (Total process time):
real time 0.00 secondes
cpu time 0.00 secondes
21 ;
22 run;
23
24
25 ods tagsets.excelxp file="&path."
26 options(zoom='80' sheet_name=' test ' autofit_height='yes');
NOTE: Writing TAGSETS.EXCELXP Body file: /sas/rep1/test.xls
NOTE: This is the Excel XP tagset (Compatible with SAS 9.1.3 and above, v1.130, 05/01/2011). Add options(doc='help') to the ods
statement for more information.
27
28
29 proc report data=test nowindows split='*' ;
30
31 column message;
32 define message / display 'message' WIDTH=20 flow center style={just=c};
33
34
35 compute before _page_ / center ;
36 line 'TEST' ;
37 endcomp;
38 run;
38 ! quit;
NOTE: There were 1 observations read from the data set WORK.TEST.
NOTE: PROCEDURE REPORT used (Total process time):
real time 0.42 secondes
cpu time 0.02 secondes
39
40 ods tagsets.excelxp close;
41 ods listing;
2 Le Système SAS 13:56 Wednesday, March 4, 2015
42
43 GOPTIONS NOACCESSIBLE;
44 %LET _CLIENTTASKLABEL=;
45 %LET _CLIENTPROJECTPATH=;
46 %LET _CLIENTPROJECTNAME=;
47 %LET _SASPROGRAMFILE=;
48
49 ;*';*";*/;quit;run;
50 ODS _ALL_ CLOSE;
51
52
53 QUIT; RUN;
Oui mais Excel attend un vrai .XLS ou un .XLSX d'où le message d'avertissement ( ce message n'a absolument rien à voir avec SAS ).J'ai cru comprendre que les fichiers excel généré par ce tagset étaient en fait des fichiers XML, mais que tu peux lire sous excel, d'ou le message d'avertissement.
Essaie une des solution suivantes:
1- Mettre /sas/rep1/test.xml au lieu de /sas/rep1/test.xls
2- Dans Excel : décocher la vérificateur de comptabilité.
Juste une petite précision: Les fichiers créés par l'ODS dans une session SEG s'ouvrent par Excel en LOCAL à ne pas confondre avec la proc Excel ou import et donc le module PCFILE.
PS: Je n'ai pas encore tester ces solutions.
N'oubliez pas de consulter les FAQ SAS et les cours et tutoriels SAS
N'oubliez pas de mettre votre message à si la solution donnée résout votre problème
Bonjour,
Pour ne plus avoir ce message à l'ouverture du fichier, j'ai modifié l'extension .xls en .xml.
Le fichier est plus volumineux.
Il faut l'enregistrer en xlsx ensuite.
Bon ben la recherche a payé : le souci
Et bien sûr l'explication/résolution.
Il est à noter que les réponses ci-dessus sont valables, je te livre juste les threads officiels pour justifier auprès de ton responsable le temps perdu
Sauf erreur de ma part le Output Delivery System ( ODS) est inclu dans SAS base et le lien parle de la PROC IMPORT, EXPORT. Maintenant si t'as une DOC officielle qui dit que l'ODS nécessite SAS PCFILE ou autre module pour son fonctionnement, je suis preneur ( je dormirai peut être moins bête ce soir) .
N'oubliez pas de consulter les FAQ SAS et les cours et tutoriels SAS
N'oubliez pas de mettre votre message à si la solution donnée résout votre problème
Bonjour,
Le message d'ouverture est bien normal: ODS TAGSETS.EXCELXP créé des fichiers XML.
https://communities.sas.com/message/137802#137802.
Pour pouvoir convertir les fichiers XML vers XLS, xlsx, SAS support propose cette solution:
http://support.sas.com/kb/43/496.html
Cordialement
Certification des Talents de la programmation In Memory Statistics sur HADOOP:
http://talents-imstat.groupe-avisia....avance?uid=162
Salut,
J'ai essayé la macro mais j'ai ce message d'erreur.
D'où cela peut venir d'après vous ? Des logiciels pas à jour ?
C'est dommage que ça ne fonctionne pas car j'ai de temps en temps besoin d'importer sur SAS des fichiers que j'ai déjà exporté avec ODS TAGSETS et ça ne fonctionne jamais avec des XLS/X. Du coup j'exporte en XML et je converti à la main en sauvegardant un nouveau fichier dans Excel.
alers
Bonjour,
Le problème est en effet provient lors de la comparaison avec la version Excel.
Je te propose cette nouvelle version à laquelle j'ai apporté quelques modifications et qui a pour but:
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (oXL.Version) >= 12 Then" ;
1/Création des fichiers XML
2/Conversion des ces fichiers vers xslx
3/Suppression des fichiers XML
4/ Tests d'importation des données présentes dans les fichiers xlsx avec: libname et proc import.
Voici la version complète du code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 proc sort data=sashelp.class out=test; by age; run; ods tagsets.excelxp file="c:\temp\temp2_files\temp.xml" newfile=bygroup; proc print data=test; by age; run; ods tagsets.excelxp close; /****************************************************************************/ /* The DEFAULT= parameter points to the folder containing the .XML files. */ /* In this example, the files were generated using the ExcelXP tagset. */ /* The STORE= parameter names the location where the script will be stored. */ /* The EXT= parameter specifies which type of file should be converted. */ /* The %INCLUDE statement includes the macro to be invoked. */ /****************************************************************************/ options noxsync noxwait; %macro test(default=c:\temp\temp2_files\,store=c:\temp\temp.vbs,ext=xml); data _null_; file "&store"; put " Dim oXL "; put " Dim oFolder"; put " Dim aFile"; put " Dim FSO"; put " Set oXL = CreateObject(""Excel.Application"")"; put " Set FSO = CreateObject(""Scripting.FileSystemObject"")"; put " oXL.DefaultFilePath = ""&default"""; put " oXL.DisplayAlerts = False"; put " if FSO.FolderExists(oXL.DefaultFilePath) then"; put " Set oFolder = FSO.GetFolder(oXL.DefaultFilePath)"; put " For each aFile in oFolder.Files "; put " If Right(LCase(aFile.Name), 4) = "".&ext"" Then"; put " oXL.Workbooks.Open(aFile.Name)"; put " oXL.Visible = False"; put " oXL.ActiveWorkBook.SaveAs Left(aFile, Len(aFile) - 4) & "".xlsx"",51"; put " oXL.ActiveWorkBook.Close SaveChanges = True"; put " End If"; put " Next"; put " Set oFolder = Nothing"; put " end if"; put " FSO.DeleteFile(""&default\*.&ext""), DeleteReadOnly"; put " oXL.DisplayAlerts = True"; put " oXL.Quit"; put " Set oXL = Nothing"; run; x "cscript ""&store"""; %mend; %test() /*test sur les import de données */ /*avec libname Ok reste à renommer les colonnes*/ libname tt 'C:\temp\temp2_files\temp1.xlsx';run; /*Avec la proc import éaglement Ok même remarque : modifier les noms des colonnes*/ proc import dbms=excel datafile='C:\temp\temp2_files\temp.xlsx' out=table1 replace; sheet="Table 1 - Age=11"; run;
Cordialement
Certification des Talents de la programmation In Memory Statistics sur HADOOP:
http://talents-imstat.groupe-avisia....avance?uid=162
C'est super, cette fois-ci tout fonctionne chez moi. La création des XLSX est automatique. Quand je lance le VBS en revanche toujours la même erreur mais en tout cas la macro fonctionne.
Merci !
alers
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager