begin process at 2010 02 10 03:13:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Autre

 > 

Sauvegarde de stream dans un .csv, .xls...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Sauvegarde de stream dans un .csv, .xls...

mardi 27 janvier 2009 à 15:05:12 | Sauvegarde de stream dans un .csv, .xls...

renyone

Bonjour à tous.
Je vous explique mon problème: j'interroge un server exchange pou récupérer des pieces jointes dans des mails. Ces pieces jointes sont de tout type: xls, csv etc. La réponse est sous la forme de stream et il faut que j enregistre le stream au bon format.

Voici mon bout de code:
                Stream sr = REPONDSEDUSERVER();
                string sa = sr.ReadToEnd();
                StreamWriter sw = new StreamWriter(@"C:toto.ext");
                sw.Write(sa);
                sw.Close();

Ca, ca marche que si ext est de type .txt ou .xml.

Comment enregistrer un stream dans un format tel csv ou xls dans ce cas ?

Merci d avance.


mardi 27 janvier 2009 à 17:26:17 | Re : Sauvegarde de stream dans un .csv, .xls...

thristam

Salut,

Pour le csv, je ne pense pas qu'il y ait une stream qui le lit directement. Il faut un peu coder . Tu lis ton csv comme un txt, et tu utilises la fonction Split() pour lire chaque "cellules" ( on utilisant le séparateur tab pour ce format, il me semble ).

Pour lire le xls, il faut que tu utilises la librairie Microsoft Excel Object. Pour cela il faut installer Office Primary Interop Assemblies. Il se trouve que j'ai exactement le même problème que toi mais pour le .doc . Voici le lien du post. Merci de ne pas y poser des questions par rapport à ton post. Lis-le, suis-le ( pour Excel, bien sur ). Et repose-moi des questions dans ton post, j'y répondrai toujours car c en lien avec mon problème. J'ai déjà potassé ce problème de lecture xls depuis longtemps, ensemble on trouvera surement la solution. 
mercredi 28 janvier 2009 à 15:30:22 | Re : Sauvegarde de stream dans un .csv, .xls...

renyone

Réponse acceptée !
Salut!
En fait j'ai tout simplement recopié bit à bit le stream dans un filestream local.

Stream stream = REPONSE DU SERVER;
byte[] bytesTab = ReadFully(stream, 0);
FileStream s = new FileStream(fileName, FileMode.Create);
foreach (byte b in bytesTab)
{
      s.WriteByte(b);
 }
     s.Close();

public static byte[] ReadFully(System.IO.Stream stream, int initialLength)
        {
          
            if (initialLength < 1)
            {
                initialLength = 32768;
            }

            byte[] buffer = new byte[initialLength];
            int read = 0;

            int chunk;
            while ((chunk = stream.Read(buffer, read, buffer.Length - read)) > 0)
            {
                read += chunk;

              
                if (read == buffer.Length)
                {
                    int nextByte = stream.ReadByte();

                    // End of stream? If so, we're done
                    if (nextByte == -1)
                    {
                        return buffer;
                    }

                  
                    byte[] newBuffer = new byte[buffer.Length * 2];
                    Array.Copy(buffer, newBuffer, buffer.Length);
                    newBuffer[read] = (byte)nextByte;
                    buffer = newBuffer;
                    read++;
                }
            }
          
            byte[] ret = new byte[read];
            Array.Copy(buffer, ret, read);
            return ret;
        }

Voili voilou.
Je recupere tout type de format comme ca: csv, xls, zip etc.
:)
mercredi 28 janvier 2009 à 16:52:50 | Re : Sauvegarde de stream dans un .csv, .xls...

thristam

Tu récupères les csv, xls en binaire, d'accord. Mais comment tu vas les utiliser ? A un moment donné, il faudra les convertir en texte ?
jeudi 29 janvier 2009 à 11:26:33 | Re : Sauvegarde de stream dans un .csv, .xls...

renyone

Je sais pas si j ai bien compris ce que tu voulais dire. Mais ce que je fais c'est:

recuperation du stream (qui encode tout type de fichier: xls, csv, zip etc.) ==> je recupere tous ses bytes byte[] bytetab ==> j'ecris ces bytes dans un fichier avec la bonne extension (filename a la bonne extension. Dans mon cas j'ai l'adresse du fichier sur le server. Je sais qu'elle se termine par csv, j'ajoute .csv à mon filename) ==> mon fichier "filename" contient toutes mes données au bon format.


Cette discussion est classée dans : xls, sauvegarde, stream, csv, pieces


Répondre à ce message

Sujets en rapport avec ce message

Conversion XLS en CSV C# [ par arofred ] Bonjour, Je débute en DOT NET C# et je voudrais convertir un fichier excel en fichier CSV, quelqu'un peut il m'aider. Je sais le faire en php mais pas Sauvegarde les donnees [ par emmanuel9 ] Bonjour à tous, J'ai un programme et en fait quand on quitte ce programme ca déserialize une instance de la classe BDD (qui contient toutes les info C# - System.Xml.Document: Comment sauvegarder les caractères spéciaux dans le fichier xml [ par smashingraph ] Bonjour, J'ai un petit souci lors de la sauvegarde de mon fichier xml. J'utilises une instance de la classe System.Xml.Document. Je charges un docum sauvegarde après changements dans fenêtre [ par nosil ] Salut tout le monde.... Je pense que je poste ce sujet au mauvais endroit, mais je veux être sûre de recevoir une réponse. J'ai une fenêtre avec Serialisation / deserialisation. [ par xakal ] Bonjour a tous.grace aux codes et forum du site j'ai mis en place une serialisation et deserialisation.Le probleme que je ne comprend pas c'est que la déserializer [ par catamenia ] bonjour, J'enregistre des formes géométrique dans un fichier mais je n'arrive pas a savoir quand je charge le fichier a savoir si j'ai fini de deséria Excel et CSV, petit pb pour sélectionner une plage dynamique [ par shoka ] Voici mon problème (avec un screen s'il vous plait ! ) :http://img58.imageshack.us/img58/7708/pbxls5zw.jpgJ'aimerais, dans la cellule A1 Lecture fichier CSV : caractère é è ë ê à,... effacés [ par Stingray_fr_88 ] je n'arrive pas à lire un fichier csv les caractères spéciaux disparaissent comme les é è ë ê à,... voici mon code : System.IO.StreamReader sr = Sys "progressbar" mise en attente [ par cudenetf ] bonsoir, Pour sauvegarder une base de données sur une clé usb, je fais une recherches des lecteurs disponibles en utilisant la classe system.managemen [C#] Titre de colonnes xls [ par crawling5 ] Bonjour, J'ai 2 petits problèmes avec une lecture de fichier xls. 1/ J'utilise une connection ODBC vers le fichier (imposé par mon maître de stage). O


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales