[Users-fr] Fwd: import tableau excel

classic Classic list List threaded Threaded
5 messages Options
patrice metaireau patrice metaireau
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[Users-fr] Fwd: import tableau excel

bonjour, 

je souhaite importer le contenu d'un tableau excel2003 dans une matrice.
le tableau excel (12 colonnes, 84 lignes) contient des chiffres (avec virgule), des chaines de caractères ,des dates, des cellules vides.
comment faire simple? je ne m'en sort pas avec xls_open, xls_read et readxls !!!

en alternative je fais ainsi avec un fichier .csv (mais cela me semble moche) :

chemin=uigetfile(["*.*"],'D:/user/travail/projets')
fic=mopen(chemin,'rt')
l=mgetl(fic,2)
m=mgetl(fic)
sz=size(m,1)

for  n = 1:sz
p=m(n);p1=strsplit(p,";");p2=p1'
q(n,1)=p2(1,1);q(n,2)=p2(1,2);q(n,3)=p2(1,3);q(n,4)=p2(1,4);q(n,5)=p2(1,5);q(n,6)=p2(1,6)
q(n,7)=p2(1,7);q(n,8)=p2(1,8);q(n,9)=p2(1,9);q(n,10)=p2(1,10);q(n,11)=p2(1,11);q(n,12)=p2(1,12);
end

question subsidiaire :
après modification de ma matrice (qui contiendra des chiffres, des chaines de caractères , des cellules vides.)  peut on exporter au format XLS ?

cordialement 

P METAIREAU


_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr
Samuel GOUGEON Samuel GOUGEON
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Fwd: import tableau excel

Bonjour,

Le 19/08/2016 22:13, patrice metaireau a écrit :
bonjour, 

je souhaite importer le contenu d'un tableau excel2003 dans une matrice.
le tableau excel (12 colonnes, 84 lignes) contient des chiffres (avec virgule), des chaines de caractères ,des dates, des cellules vides.
comment faire simple? je ne m'en sort pas avec xls_open, xls_read et readxls !!!

en alternative je fais ainsi avec un fichier .csv
.
Convertir votre fichier au format CSV  est un bon début. Après cela, vous
pouvez utiliser csvRead(), qui est très paramétrable :
https://help.scilab.org/docs/6.0.0/fr_FR/csvRead.html

Normalement, les cellules vides ne devraient pas poser de problème.

Le résultat importé est une matrice de texte, pour toutes les colonnes.
Il faut donc ensuite convertir les colonnes qui en réalité ne sont pas
du texte.. en ce qu'elles doivent être.
 * pour les colonnes de nombres, utiliser:
    ma_colonne_de_nombres = evstr(ma_colonne_de_nombres_en_texte)
* pour les dates: cela dépend sous quelle forme elles apparaissent en texte.


chemin=uigetfile(["*.*"],'D:/user/travail/projets')
fic=mopen(chemin,'rt')
l=mgetl(fic,2)
m=mgetl(fic)
sz=size(m,1)

for  n = 1:sz
p=m(n);p1=strsplit(p,";");p2=p1'
q(n,1)=p2(1,1);q(n,2)=p2(1,2);q(n,3)=p2(1,3);q(n,4)=p2(1,4);q(n,5)=p2(1,5);q(n,6)=p2(1,6)
q(n,7)=p2(1,7);q(n,8)=p2(1,8);q(n,9)=p2(1,9);q(n,10)=p2(1,10);q(n,11)=p2(1,11);q(n,12)=p2(1,12);
end

(mais cela me semble moche) :
.
csvRead() devrait mieux vous convenir ;)

question subsidiaire :
après modification de ma matrice (qui contiendra des chiffres, des chaines de caractères , des cellules vides.)  peut on exporter au format XLS ?
En csv, avec csvWrite()...

Bon courage
Samuel Gougeon


_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr
patrice metaireau patrice metaireau
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Fwd: import tableau excel

bonjour,

merci beaucoup pour cette réponse.

c'est  beaucoup plus simple et grâce aux options de la commande je peux supprimer les 2 1ères lignes et les caractères accentués ou accents.

substitute=["é" "e";"è","e";"à","a" ];header=2
m = csvRead(chemin,";",".","string",substitute,[],[],header)

par contre sur les colonnes 9 et 11 j'ai des chiffres et ils sont considérés comme des caractères (15+15=1515). peut on dans une même matrice affecter des colonnes caractères et des colonnes chiffres ?
sinon : a=strtod(m(1,11),",");b=strtod(m(2,11),",");c=a+b ???

question 2 :les nombres ont une virgule. dois je mettre un point ? dans "substitute" ou dans la fonction csvread ?

cordialement

P METAIREAU


Le 20 août 2016 à 01:35, Samuel Gougeon <[hidden email]> a écrit :
Bonjour,

Le 19/08/2016 22:13, patrice metaireau a écrit :
bonjour, 

je souhaite importer le contenu d'un tableau excel2003 dans une matrice.
le tableau excel (12 colonnes, 84 lignes) contient des chiffres (avec virgule), des chaines de caractères ,des dates, des cellules vides.
comment faire simple? je ne m'en sort pas avec xls_open, xls_read et readxls !!!

en alternative je fais ainsi avec un fichier .csv
.
Convertir votre fichier au format CSV  est un bon début. Après cela, vous
pouvez utiliser csvRead(), qui est très paramétrable :
https://help.scilab.org/docs/6.0.0/fr_FR/csvRead.html

Normalement, les cellules vides ne devraient pas poser de problème.

Le résultat importé est une matrice de texte, pour toutes les colonnes.
Il faut donc ensuite convertir les colonnes qui en réalité ne sont pas
du texte.. en ce qu'elles doivent être.
 * pour les colonnes de nombres, utiliser:
    ma_colonne_de_nombres = evstr(ma_colonne_de_nombres_en_texte)
* pour les dates: cela dépend sous quelle forme elles apparaissent en texte.


chemin=uigetfile(["*.*"],'D:/user/travail/projets')
fic=mopen(chemin,'rt')
l=mgetl(fic,2)
m=mgetl(fic)
sz=size(m,1)

for  n = 1:sz
p=m(n);p1=strsplit(p,";");p2=p1'
q(n,1)=p2(1,1);q(n,2)=p2(1,2);q(n,3)=p2(1,3);q(n,4)=p2(1,4);q(n,5)=p2(1,5);q(n,6)=p2(1,6)
q(n,7)=p2(1,7);q(n,8)=p2(1,8);q(n,9)=p2(1,9);q(n,10)=p2(1,10);q(n,11)=p2(1,11);q(n,12)=p2(1,12);
end

(mais cela me semble moche) :
.
csvRead() devrait mieux vous convenir ;)

question subsidiaire :
après modification de ma matrice (qui contiendra des chiffres, des chaines de caractères , des cellules vides.)  peut on exporter au format XLS ?
En csv, avec csvWrite()...

Bon courage
Samuel Gougeon


_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr



_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr
patrice metaireau patrice metaireau
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Fwd: import tableau excel

oups   !!!

 en me relisant je m'aperçoit que vous aviez déjà répondu .....

sincèrement désolé pour le dérangement

P METAIREAU

Le 23 août 2016 à 09:38, patrice metaireau <[hidden email]> a écrit :
bonjour,

merci beaucoup pour cette réponse.

c'est  beaucoup plus simple et grâce aux options de la commande je peux supprimer les 2 1ères lignes et les caractères accentués ou accents.

substitute=["é" "e";"è","e";"à","a" ];header=2
m = csvRead(chemin,";",".","string",substitute,[],[],header)

par contre sur les colonnes 9 et 11 j'ai des chiffres et ils sont considérés comme des caractères (15+15=1515). peut on dans une même matrice affecter des colonnes caractères et des colonnes chiffres ?
sinon : a=strtod(m(1,11),",");b=strtod(m(2,11),",");c=a+b ???

question 2 :les nombres ont une virgule. dois je mettre un point ? dans "substitute" ou dans la fonction csvread ?

cordialement

P METAIREAU


Le 20 août 2016 à 01:35, Samuel Gougeon <[hidden email]> a écrit :
Bonjour,

Le 19/08/2016 22:13, patrice metaireau a écrit :
bonjour, 

je souhaite importer le contenu d'un tableau excel2003 dans une matrice.
le tableau excel (12 colonnes, 84 lignes) contient des chiffres (avec virgule), des chaines de caractères ,des dates, des cellules vides.
comment faire simple? je ne m'en sort pas avec xls_open, xls_read et readxls !!!

en alternative je fais ainsi avec un fichier .csv
.
Convertir votre fichier au format CSV  est un bon début. Après cela, vous
pouvez utiliser csvRead(), qui est très paramétrable :
https://help.scilab.org/docs/6.0.0/fr_FR/csvRead.html

Normalement, les cellules vides ne devraient pas poser de problème.

Le résultat importé est une matrice de texte, pour toutes les colonnes.
Il faut donc ensuite convertir les colonnes qui en réalité ne sont pas
du texte.. en ce qu'elles doivent être.
 * pour les colonnes de nombres, utiliser:
    ma_colonne_de_nombres = evstr(ma_colonne_de_nombres_en_texte)
* pour les dates: cela dépend sous quelle forme elles apparaissent en texte.


chemin=uigetfile(["*.*"],'D:/user/travail/projets')
fic=mopen(chemin,'rt')
l=mgetl(fic,2)
m=mgetl(fic)
sz=size(m,1)

for  n = 1:sz
p=m(n);p1=strsplit(p,";");p2=p1'
q(n,1)=p2(1,1);q(n,2)=p2(1,2);q(n,3)=p2(1,3);q(n,4)=p2(1,4);q(n,5)=p2(1,5);q(n,6)=p2(1,6)
q(n,7)=p2(1,7);q(n,8)=p2(1,8);q(n,9)=p2(1,9);q(n,10)=p2(1,10);q(n,11)=p2(1,11);q(n,12)=p2(1,12);
end

(mais cela me semble moche) :
.
csvRead() devrait mieux vous convenir ;)

question subsidiaire :
après modification de ma matrice (qui contiendra des chiffres, des chaines de caractères , des cellules vides.)  peut on exporter au format XLS ?
En csv, avec csvWrite()...

Bon courage
Samuel Gougeon


_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr




_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr
Samuel GOUGEON Samuel GOUGEON
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Fwd: import tableau excel

In reply to this post by patrice metaireau
Bonjour,

Le 23/08/2016 09:38, patrice metaireau a écrit :

> bonjour,
>
> merci beaucoup pour cette réponse.
>
> c'est  beaucoup plus simple et grâce aux options de la commande je
> peux supprimer les 2 1ères lignes et les caractères accentués ou accents.
>
> substitute=["é" "e";"è","e";"à","a" ];header=2
> m = csvRead(chemin,";",".","string",substitute,[],[],header)
>
> par contre sur les colonnes 9 et 11 j'ai des chiffres et ils sont
> considérés comme des caractères (15+15=1515).
.
Voulez-vous dire que dans chaque colonne est écrit littéralement "15+15" ?
Le cas échéant, evstr("15+15") fonctionne, si c'est le résultat qui vous
intéresse :
--> evstr("15+15")
  ans  =
    30.

> question 2 :les nombres ont une virgule. dois je mettre un point ?
> dans "substitute" ou dans la fonction csvread ?
csvRead() a une option pour cela.
Vous pouvez aussi utiliser strsubst() sur les contenus lus, si nécessaire.

Samuel Gougeon

_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr
Loading...