[résolu]Problème fichier .xlsx

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Antoine Rayer
Messages : 63
Enregistré le : 06 Mai 2011, 12:44

[résolu]Problème fichier .xlsx

Messagepar Antoine Rayer » 19 Oct 2011, 07:31

Bonjour à tous.
Lors de mes différents travaux sur le logiciel R, j'ai toujours travaillé avec des points .csv. Seulement cette fois-ci pour des raisons professionnelles, je suis obligé de garder mon fichier en .xlsx (ce qui ne me plait pas forcément mais bon, c'est dans le cahier des charges).
Mon problème est que, pour je ne sais quelle raison, le package xlsx refuse de se lancer, un soucis, il me semble avec rjava.

Code : Tout sélectionner

Error : .onLoad a échoué dans loadNamespace() pour 'rJava', détails :
  appel : inDL(x, as.logical(local), as.logical(now), ...)
  erreur : impossible de charger l'objet partagé 'C:/R-2.13.2/library/rJava/libs/i386/rJava.dll':
  LoadLibrary failure:  Accès refusé.

Erreur : le package 'rJava' ne peut être chargé
>


Cependant j'arrive à importer le fichier avec l'interface RCMDR.
Du coup ma question est: Avec quel principe (ou package) RCMDR importe les fichiers xlsx? Pour que je puisse le faire sans utiliser cette interface.

Merci d'avance.

matthieu faron
Messages : 586
Enregistré le : 16 Fév 2011, 11:23

Messagepar matthieu faron » 19 Oct 2011, 07:58

Salut,

Si tu es sous Windows tu peux proablement utiliser le package : RODBC

Une petite recherche sur ce mot clé dans le forum devrait pouvoir t'aider sinon la documentation du package :

Code : Tout sélectionner

RShowDoc("RODBC", package="RODBC")
Matthieu FARON

Antoine Rayer
Messages : 63
Enregistré le : 06 Mai 2011, 12:44

Messagepar Antoine Rayer » 19 Oct 2011, 08:00

Bonjour, et merci de ta réponse.
Effectivement c'est ce que je suis en train d'essayer, mais pour l'instant c'est peu concluant. Problème de fichier en lecture seule alors que ce n'est pas le cas, mais je continue de chercher dans cette voie là.

edit: Je viens de remarquer que losqu'il me dit que le fichier est en lecture seul, une fenetre s'ouvre et me propose seulement de choisir les fichiers en .xls et non en .xlsx. Le problème vient peut être de là...

Antoine Rayer
Messages : 63
Enregistré le : 06 Mai 2011, 12:44

Messagepar Antoine Rayer » 19 Oct 2011, 08:33

Bon, j'ai fini par y arriver, effectivement il suffisait de préciser lors de la connexion que c'était de l'Excel2007.
Maintenant je n'ai plus qu'à faire mes recherches pour comprendre comment cela marche .

Merci beaucoup

Antoine Rayer
Messages : 63
Enregistré le : 06 Mai 2011, 12:44

Messagepar Antoine Rayer » 19 Oct 2011, 09:01

Bon, finalement, je ne comprends rien.

La connexion se fait bien, mais après j'ai l'impression qu'il n y a rien dans la base.
Mon fichier xlsx dispose d'une 20aine de feuille, et je voudrais en récupérer une seulement je ne sais pas comment.

Code : Tout sélectionner

>con <- odbcConnectExcel2007("monfichier.xlsx")
>sqlTables(con)
[1] TABLE_CAT   TABLE_SCHEM TABLE_NAME  TABLE_TYPE  REMARKS   
<0 lignes> (ou 'row.names' de longueur nulle)


Je pense que je vais laisser tomber R pour ce travail et m'orienter vers les macros VB au sein même d'Excel.

matthieu faron
Messages : 586
Enregistré le : 16 Fév 2011, 11:23

Messagepar matthieu faron » 19 Oct 2011, 09:09

J’utilise quasiment jamais ODBC mais tu as essayé :

Code : Tout sélectionner

sqlFetch(channel = con, sqtable = "Feuil1")


Pour récupérer la Feuil1 d'après son nom ?
Matthieu FARON

Antoine Rayer
Messages : 63
Enregistré le : 06 Mai 2011, 12:44

Messagepar Antoine Rayer » 19 Oct 2011, 09:11

Ouip j'ai essayé. mon problème est que, même si la connexion s'est bien faite, on dirait que le fichier ne possède pas de feuilles. Il ne trouve rien, et c'est bien cela qui m'embête


Bon, après vérification, c'est mon fichier qui soit avoir un problème, car, après un essai sur un autre fichier, il récupère bien mes différentes feuilles... Mais bien entendu c'est un fichier qui ne me sert à rien, sinon ça serait trop simple.

matthieu faron
Messages : 586
Enregistré le : 16 Fév 2011, 11:23

Messagepar matthieu faron » 19 Oct 2011, 09:20

Il parle un peu de ça dans la documentation de RODBC pour les spécificités d'Excel.
Apparemment il n'existe pas vraiment de table (au sens sql) mais que des colonnes qui sont nommés par plage correspondant à une table.

Essayes peut être :

Code : Tout sélectionner

sqlTables(con, tableType = "TABLE")


C'est ce qu'il marque dans la doc :

Code : Tout sélectionner

RShowDoc("RODBC", package="RODBC")
Matthieu FARON

Antoine Rayer
Messages : 63
Enregistré le : 06 Mai 2011, 12:44

Messagepar Antoine Rayer » 19 Oct 2011, 09:25

Oui j'ai essayé et ça revient au même.
Mais cela doit venir de mon fichier. Peut être parce que ce sont des résultats issus d'une macro. Je ne sais pas, je vais continuer mes recherches.

Antoine Rayer
Messages : 63
Enregistré le : 06 Mai 2011, 12:44

Messagepar Antoine Rayer » 19 Oct 2011, 09:35

En sachant qu'à la base c'est un fichier .xlsm que j'ai enregistré en .xlsx ( cela ne marche pas mieux en .xls, j'ai fait le test).
Il me faudrait peut être un moyen d'ouvrir directement le .xlsm mais je doute que cela soit possible, en tout cas j'ai rien trouvé sur le sujet.

Samir Messad
Messages : 76
Enregistré le : 10 Jan 2005, 20:56

Messagepar Samir Messad » 20 Oct 2011, 08:47

Bonjour,

A tout hasard, essayez avec la fonction import du package tdisplay dispo dans la section 'Packages' de GUR.

Cordialement.

Antoine Rayer
Messages : 63
Enregistré le : 06 Mai 2011, 12:44

Messagepar Antoine Rayer » 20 Oct 2011, 08:56

Bonjour à tous, je viens effectivement de trouver mon problème.
Le fichier xlsx que je voulais utilisais était bien issu d'un fichier xlsm. Il m' a donc simplement fallut copier coller valeur pour pouvoir le lire dans R et tout marche très bien. Merci beaucoup de votre aide.

Je vais me renseigner sur la fonction import, même si là j'en ai plus besoin, ça pourrait me servir un jour vu que je ne la connais pas.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité