Conector de datos para archivos de PC

Este código también está disponible en: Deutsch English
Nivel de dificultad
Principiante
Publicado el :
Este conector es esencial para integrar datos de aplicaciones de oficina directamente en el entorno de alto rendimiento de SAS© Viya. Gestiona la conversión de tipos de datos y permite a los usuarios especificar opciones para la lectura (por ejemplo, hoja específica, rango de celdas) o la escritura (por ejemplo, reemplazo de archivo, adición a una hoja existente). El acceso a los archivos de PC se realiza a través de una sesión CAS, a menudo utilizando el procedimiento CASUTIL o la librería CAS.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos utilizan datos generados (datalines) para simular la importación de archivos de PC o crear pequeños conjuntos de datos para la exportación. Para la importación real, se supone que existen archivos de Excel/Access.

1 Bloque de código
PROC CASUTIL Data
Explicación :
Este ejemplo muestra cómo cargar un archivo Excel (aquí simulado por un CSV y luego cargado en CAS) en una tabla CAS llamada 'ma_table_excel'. Utiliza `PROC CASUTIL` con la opción `LOAD` y especifica la caslib de entrada y salida. La tabla se promueve luego para ser visible por todos los usuarios de la sesión CAS.
¡Copiado!
1/* Préparation : Créer un fichier Excel factice sur le système de fichiers du contrôleur CAS ou un chemin accessible */
2/* Dans un environnement réel, ce fichier 'mon_fichier.xlsx' existerait déjà. */
3/* Pour la démonstration, nous allons simuler son contenu avec DATA étape. */
4 
5/* Créer un fichier CSV temporaire pour simuler le contenu d'un fichier Excel */
6/* En pratique, vous auriez un fichier Excel existant */
7filename mydata temp;
8DATA _null_;
9 file mydata dlm=',' lrecl=200;
10 put 'ID,Nom,Valeur';
11 put '1,Alpha,100';
12 put '2,Beta,150';
13 put '3,Gamma,200';
14RUN;
15 
16/* Charger le fichier CSV dans une table CAS qui sera ensuite 'enregistrée' comme Excel */
17/* Ce n'est qu'une simulation. Normalement, l'Excel existerait déjà. */
18PROC CAS;
19 SESSION casauto;
20 TABLE.loadTable /
21 path='mydata.csv'
22 caslib='casuser'
23 promote=TRUE
24 fileType='CSV'
25 importOptions={getNames=TRUE};
26QUIT;
27 
28/* Utiliser PROC CASUTIL pour charger un fichier Excel (simulé) dans une table CAS */
29/* Supposons que 'mon_fichier.xlsx' est disponible dans le caslib 'public' */
30/* (chemin réel: /cas/data/public/mon_fichier.xlsx) */
31/* Dans cet exemple, nous allons utiliser le fichier CSV temporaire comme source */
32/* En réalité, le fichier d'entrée serait 'mon_fichier.xlsx' */
33 
34PROC CASUTIL;
35 load casdata="mydata.csv" incaslib="casuser" outcaslib="casuser" casout="ma_table_excel" replace;
36 promote casdata="ma_table_excel" incaslib="casuser";
37RUN;
38 
39PROC PRINT DATA=casuser.ma_table_excel;
40RUN;
41 
2 Bloque de código
PROC CASUTIL Data
Explicación :
Este ejemplo ilustra cómo refinar la importación de un archivo Excel especificando opciones. Normalmente, opciones como `sheet=` (para seleccionar una hoja específica) y `range=` (para un rango de celdas) se usarían en las `importoptions` de `PROC CASUTIL`. Aquí, para la demostración, simulamos la lectura de datos específicos.
¡Copiado!
1/* Préparation : Créer un fichier Excel factice avec plusieurs feuilles pour démonstration */
2/* En pratique, le fichier Excel 'ventes.xlsx' existerait déjà avec ces feuilles. */
3filename xlfile temp;
4DATA _null_;
5 file xlfile dlm=',' lrecl=200;
6 /* Feuille 1: Ventes_Q1 */
7 put 'ID_Produit,Region,Ventes_Trim1';
8 put 'A1,Est,1000';
9 put 'A2,Ouest,1200';
10 /* Feuille 2: Ventes_Q2 */
11 put 'ID_Produit,Region,Ventes_Trim2';
12 put 'A1,Est,1100';
13 put 'A3,Nord,900';
14RUN;
15 
16/* Charger le fichier Excel (simulé par CSV) spécifiant une feuille et une plage */
17/* Ici, nous allons simuler un chargement à partir d'un fichier Excel (XLFILE) */
18/* en utilisant la fonctionnalité d'importation de fichiers PC. */
19/* Dans un cas réel, le XLFILE serait un vrai fichier Excel. */
20 
21PROC CASUTIL;
22 /* Supposons que xlfile contient les données des deux feuilles */
23 /* Nous allons charger la 'deuxième' feuille (Ventes_Q2) et une plage spécifique */
24 load casdata="xlfile.csv" incaslib="casuser" outcaslib="casuser" casout="ventes_q2_specifiques" replace
25 importoptions=(fileType='CSV' getNames=true);
26 promote casdata="ventes_q2_specifiques" incaslib="casuser";
27RUN;
28 
29/* Pour les fichiers Excel, les options sheet= et range= seraient utilisées comme ceci: */
30/* load casdata="ventes.xlsx" incaslib="public" outcaslib="casuser" casout="ventes_q2_specifiques" replace
31 importoptions=(fileType='XLSX' sheet="Ventes_Q2" range="A2:C3"); */
32/* Ici, nous montrons comment le connecteur interpréterait des options similaires pour la démonstration */
33 
34PROC PRINT DATA=casuser.ventes_q2_specifiques;
35RUN;
36 
3 Bloque de código
PROC CASUTIL Data
Explicación :
Este ejemplo muestra la exportación de una tabla CAS existente ('produits') a un archivo Excel llamado 'rapport_produits.xlsx'. El archivo se guarda en la caslib especificada ('casuser') y se define una hoja específica ('Inventaire') para la exportación. La opción `replace` permite reemplazar el archivo si ya existe.
¡Copiado!
1/* Créer une table CAS pour l'exportation */
2DATA casuser.produits;
3 INFILE DATALINES dlm=',';
4 INPUT ID $ NomProduit $ Prix Quantite;
5 DATALINES;
6 P001,Laptop,1200,10
7 P002,Souris,25,50
8 P003,Clavier,75,30
9 ;
10RUN;
11 
12PROC CAS;
13 SESSION casauto;
14 TABLE.promote / name='produits' caslib='casuser';
15QUIT;
16 
17/* Exporter la table CAS 'produits' vers un fichier Excel 'rapport_produits.xlsx' */
18/* Le fichier sera créé dans le caslib 'casuser' (chemin réel sur le contrôleur CAS) */
19PROC CASUTIL;
20 save casdata="produits" incaslib="casuser"
21 outfile="rapport_produits.xlsx" outcaslib="casuser" replace
22 exportoptions=(fileType='XLSX' sheet="Inventaire");
23RUN;
24 
25/* Vérification (en listant les fichiers du caslib) */
26PROC CASUTIL;
27 list files caslib="casuser";
28RUN;
29 
4 Bloque de código
PROC CAS; PROC FEDSQL Data
Explicación :
Este ejemplo avanzado simula el procesamiento de datos inicialmente almacenados en un archivo Excel, una vez que han sido cargados en una tabla CAS. Utiliza `PROC FEDSQL` para filtrar las órdenes con el estado 'Terminada' y `simple.summary` (una acción CAS) para calcular el monto total de estas órdenes. Esto demuestra la capacidad de CAS para realizar análisis de alto rendimiento sobre datos provenientes de archivos de PC.
¡Copiado!
1/* Préparation : Charger un fichier Excel (simulé par une table CAS) dans CAS */
2/* Nous allons créer une table CAS directement pour simuler des données issues d'Excel. */
3/* En réalité, ceci viendrait d'un 'LOAD CASDATA="mon_fichier.xlsx" ...' */
4DATA casuser.commandes_excel_simule;
5 INFILE DATALINES dlm=',';
6 INPUT ID_Commande $ DateCommande :MMDDYY10. Montant Commande_Statut $;
7 FORMAT DateCommande date9.;
8 DATALINES;
9 C001,01/15/2025,150.50,Terminée
10 C002,02/20/2025,300.00,En cours
11 C003,03/01/2025,75.25,Terminée
12 C004,03/05/2025,210.00,Annulée
13 ;
14RUN;
15 
16PROC CAS;
17 SESSION casauto;
18 TABLE.promote / name='commandes_excel_simule' caslib='casuser';
19QUIT;
20 
21/* Utiliser PROC FEDSQL pour analyser les données chargées depuis Excel */
22/* Filtrer les commandes terminées et calculer le total */
23PROC FEDSQL sessref=casauto;
24 create TABLE casuser.commandes_terminees as
25 select
26 ID_Commande,
27 DateCommande,
28 Montant
29 from casuser.commandes_excel_simule
30 where Commande_Statut = 'Terminée';
31QUIT;
32 
33PROC PRINT DATA=casuser.commandes_terminees;
34RUN;
35 
36/* Calculer le montant total des commandes terminées */
37PROC CAS;
38 SESSION casauto;
39 SIMPLE.summary /
40 TABLE={name='commandes_terminees', caslib='casuser'}
41 sumVars={{name='Montant'}};
42QUIT;
43 
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.

Documentación relacionada

Aucune documentation spécifique pour cette catégorie.