IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SharePoint .NET Discussion :

Extraire des fichiers Excel ou Csv contenu dans une liste sharepoint [SP-2007]


Sujet :

SharePoint .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Par défaut Extraire des fichiers Excel ou Csv contenu dans une liste sharepoint
    Bonjour

    Je souhaite extraire des fichiers Excel ou Csv dans une liste SharePoint.
    Mon objectif est de pouvoir récupérer ces fichiers et de les déposer dans un autre emplacement du serveur de la machine.

    Actuellement je ne vois pas de méthode dans la classe SPList qui me permet de récupérer des fichiers.
    Je pensais voir des méthodes du genre Getfiles etc.

    Sinon Savez vous comment y procéder ?

    merci d'avance.

    stardeus

  2. #2
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    c'est pas une doc lib ta liste?

    Si c'est le cas normalement avec l'Explorateur de documents tu peux faire un copier coller massif

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Par défaut
    Effectivement je suis d'accord avec vous qu'on peut le faire avec un copier coller massif . J'ai omis de vous préciser que la contrainte était de le faire en automatique.
    En l'occurrence un job s'éxécute à la demande . celui ci permet de récupérer les fichiers existant dans la liste et de le déposer dans un autre emplacement.

  4. #4
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Pour copier des fichiers il y a plusieurs façons. Soit tu reste dans les SPListItem & SPFile & SPFolder; soit tu fais un mix SPListItem et les flux Stream pour travailler avec du binaire, ce qui rajoute de la performance mais c'est moins intuitif que l'API que propose sharepoint.


    Pour travailler avec des fichiers sharepoint cela donne qq chose de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SPWeb web = SPSite.OpenWeb()
    SPList list = web.list[nom de la liste]
    SPListItemCollection listItems = list.Items
    for each (SPListItem item in listItems)
    {
    if(web.getFileOrFolder(item) != null)
    {
    //do work
    }
     
    }
    c'est loin d'etre propre, c'est juste une idée de ce que tu sera amener à faire.

    Note : N'oublie pas les Update() et/ou SystemUpdate()[aucune notification systeme], les méthodes pour travailler avec les fichiers sont dans l'objet SPWeb

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Par défaut
    Bonjour

    Merci pour ton aide. Je rencontre quelque difficulté à pouvoir lire la liste sharepoint.
    Voici ce que je fais :

    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
     
     
     NetworkCredential credential = new System.Net.NetworkCredential("user", "password");
     
                    using (SPSite site = new SPSite("http://@IP/sites/appliweb"))
     
                    {
                        using (SPWeb web = site.OpenWeb())
                        {
     
     
                            SPList list = web.GetList("/ListReception/");      
                            SPListItemCollection listItems = list.Items;
                            foreach (SPListItem item in listItems)
                            {
                                foreach (string name in item.Attachments)
                                {
     
                                    string fullname = item.Attachments.UrlPrefix + name;
     
                                    SPFile files = item.Web.GetFile(fullname);
     
                                    Console.WriteLine("File Name {0}, fileSize {1} kb",
     
                                    fullname, files.Length);
     
                                }     
     
                            }
    Je ne parviens pas à obtenir le fichier .
    Je constate que l'objet SPSITE ne semble pas atteindre le site de collection
    Avez vous une idée ?

    merci

  6. #6
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SPList list = web.GetList("/ListReception/");
    Ta liste s'appelle ListReception ou /ListReception/ ?
    Il faut utiliser ListReception si c'est ListReception.

    Aussi, tu dois utiliser l'internal name, et non le display name, tu peux vérifier que tu utilise le bon en faisant la manip dans sharepoint :

    Lists / settings -> regarder l'URL le param fieldName


    EDIT :
    NetworkCredential credential = new System.Net.NetworkCredential("user", "password");
    A quoi te sert cette objet? tu veux atteindre sharepoint par des WebServices? si c'est le cas, le model objet ne marche pas

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Par défaut
    using (SPSite site = new SPSite("http://@IP/sites/appliweb"))

    {
    using (SPWeb web = site.OpenWeb())
    {
    Je souhaite me connecter à l'appli mais lorsque je passe en mode débug , l'objet SPsite me retourne une valeur null.

    J'ai supposé qu'il était nécessaire de s'authentifier pour accéder à la webapplication.
    c'est pour cette raison que j'ai mis :

    NetworkCredential credential = new System.Net.NetworkCredential("user", "password");
    Pourtant c'est bien avec cette adresse" http://@IP/sites/appliweb" que j'atteins le site web

  8. #8
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    NetworkCredential credential = new System.Net.NetworkCredential("user", "password");
    cela ne te sers à rien ici.

    essaye cela sinon tu met directement http://localhost/

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Par défaut
    voici le message d'erreur que j'obtient :


    System.IO.FileNotFoundException :
    at Microsoft.SharePoint.SPSite..ctor(SPFarm farm, Uri requestUri, Boolean contextSite, SPUserToken userToken)
    at Microsoft.SharePoint.SPSite..ctor(String requestUrl) at MyCompanyName.Service.HelperClass.GetItemStateInSharePoint(SharePointItem item) in C:\Workspaces\MyCompanyName\Development\Main\MyCompanyName.SharePoint\Service\HelperClass.cs:line 555

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Août 2004
    Messages : 137
    Par défaut
    Sur d'autres forums ils disent qu'il faut que le compte de l'app pool du Sharepoint doit avoir des droits d'accès total sur le Sql Server pour pouvoir accéder à distance via SPSite("http://votresite")... à tester !

  11. #11
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    stardeus, essaye tu de developper avec l'API sharepoint depuis une machine autre que le server lui même?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/09/2013, 16h45
  2. [XL-2007] Trouver un bout de code dans des fichiers Excel qui se trouve dans un répertoire
    Par Paloma dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/11/2010, 16h23
  3. Réponses: 7
    Dernier message: 10/10/2008, 16h05
  4. Réponses: 5
    Dernier message: 21/02/2007, 16h12
  5. Ouvrir un fichier excel à partir du contenu d'une cellule
    Par Lou12 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/07/2006, 13h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo