Ejemplo n.º 1
0
        /// <summary>
        /// Export the DataGridView to Comma Separated Value file.
        /// This method should be used with the methods:
        /// CsvThread().
        /// GetCsvReady().
        /// </summary>
        /// <param name="dGV">Extended DataGridView.</param>
        /// <param name="filename">Full path & name of  the Name of csv file.</param>
        void ToCsV(DataGridViewPersonalizat dGV, string filename)
        {
            if (string.IsNullOrEmpty(filename))
            {
                return;
            }

            string valoareCelula = string.Empty;

            using (StreamWriter myFile = new StreamWriter(filename, false, Encoding.Default))
            {
                //IMPORTANT!!!
                //Separatorul CVS pentru tarile europene este ; si nu , care este rezervat pentru zecimale

                myFile.WriteLine(this.lDenumireDocument);

                // Export only visible columns.
                //if (dGV.ExportVisibleColumnsOnly)
                //{
                // Export titles:
                StringBuilder sHeaders = new StringBuilder();
                List <int>    listaIndecsiColoaneExportabile = new List <int>();
                string[]      culturiVirgula = { "ar-JO",   "ar-SY", "az-Cyrl-AZ", "az-Latn-AZ", "zh-CN",
                                                 "zh-SG",        "zh-TW", "nl-BE",      "nl-NL",      "en-BZ",     "en-CA",
                                                 "en-NZ",        "en-US", "fr-CA",      "ms-BN",
                                                 "ms-MY",        "nb-NO", "nn-NO",      "pt-BR",      "sr-Cyrl-CS",
                                                 "sr-Latn-CS",   "es-AR", "es-DO",      "es-MX",
                                                 "es-ES_tradnl", "sv-FI", "sv-SE",      "uz-Cyrl-UZ", "uz-Latn-UZ" };

                string separator = "; ";
                if (culturiVirgula.Contains <string>(CultureInfo.CurrentCulture.Name))
                {
                    separator = ", ";
                }

                for (int j = 0; j < dGV.Columns.Count; j++)
                {
                    if (dGV.Columns[j].Visible && !dGV.SeIgnoraColoanaLaImprimare(dGV.Columns[j].Name))
                    {
                        valoareCelula = CUtil.InlocuiesteDiacritice(dGV.Columns[j].HeaderText);
                        sHeaders.Append(valoareCelula);
                        sHeaders.Append(separator);
                        listaIndecsiColoaneExportabile.Add(j); //pentru a exporta datele coloanelor pretabile pentru export
                    }
                }
                myFile.WriteLine(sHeaders);
                sHeaders = null;

                // Export data.
                //Fie cele bifate, fie toate
                List <DataGridViewRow> listaLiniiSelectate = dGV.GetListaLiniiSelectate();
                foreach (DataGridViewRow linie in listaLiniiSelectate)
                {
                    if (linie.Tag == null)
                    {
                        continue;                    //in Tag-ul tuturor liniilor din aplicatie salvam obiectul corespunzator liniei respective; lipsa acestuia implica ignorarea liniei
                    }
                    StringBuilder stLine = new StringBuilder();
                    for (int j = 0; j < linie.Cells.Count; j++)
                    {
                        if (listaIndecsiColoaneExportabile.Contains(j))
                        {
                            stLine.Append(CUtil.ConvertObjectToString(linie.Cells[j].EditedFormattedValue, true));
                            stLine.Append(separator);
                        }
                    }
                    myFile.WriteLine(stLine);
                }

                //}
                //else
                //{
                //    // Export titles:
                //    string sHeaders = "";
                //    for (int j = 0; j < dGV.Columns.Count; j++) { sHeaders = sHeaders.ToString() + dGV.Columns[j].HeaderText + ", "; }
                //    myFile.WriteLine(sHeaders);

                //    // Export data.
                //    for (int i = 0; i < dGV.RowCount - 1; i++)
                //    {
                //        string stLine = "";
                //        for (int j = 0; j < dGV.Rows[i].Cells.Count; j++) { stLine = stLine.ToString() + dGV.Rows[i].Cells[j].Value + ", "; }
                //        myFile.WriteLine(stLine);
                //    }
                //}
            }

            IHMUtile.PornesteProces(filename);
        }