/// <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); }