Jul 02

public class ConvertCSVToXML

{

// conversion du fichier CSV téléchargé en fichier xml

private const string _root = "Articles";

private const string _node = "Article";

private const char _separator = ';';

 

public static DataSet convert(string pathSource, string pathDestination)

{

        // remplacement du caractère " " par rien ("")

        StreamReader stream = null;

        string[] saEntetes = null;

        string sLigne = string.Empty;

 

        // Initialisation des DataSet et DataTable

        DataSet csvDataSet = null;

        DataTable csvDataTable = null;

        try

          {

            csvDataSet = new DataSet(_root);

            csvDataTable = new DataTable(_node);

 

            // Lecture du fichier CSV ligne par ligne

            stream = new StreamReader(pathSource);

            sLigne = stream.ReadLine();

 

            // En tenant compte du séparateur

            saEntetes = sLigne.Split(_separator);

 

            for (int i = 0; i < saEntetes.Length; i++)

            {

                // formatage des éléments du fichier XML

                csvDataTable.Columns.Add(saEntetes[i].ToString());

            }

            int ii = 0;

 

            while (sLigne != null)

            {

                if (ii != 0)

                {

                    csvDataTable.Rows.Add(sLigne.Split(_separator));

                    sLigne = stream.ReadLine();

                }

                else

                {

                    ii++;

                    sLigne = stream.ReadLine();

                }

            }

 

            csvDataSet.Tables.Add(csvDataTable);

            csvDataSet.WriteXml(pathDestination);

 

            return csvDataSet;

        }

        catch (Exception ex)

        {

          return null;

        }

    }

}

 

 

Tags: | |