/// <summary> /// Ajoute les données d'une colonne non liées au Business /// </summary> private string AddInfoColDatas() { string additionalData = String.Empty; XtraInfoCols.ForEach( col => { // Ajouter des cases en fonction de ce qu'on veut ajouter - Attention, cela ne concerne pas les données du métier... switch (col) { case "WORKSHEET_NAME": additionalData += this.separator + WorkSheet; break; // Copier, coller, décommenter et compléter le code suivant - 1 case par colonne supplémentaire.... //case "Nouvelle Colonne" : //additionalData += this.separator + "Donnée de la colonne à ajouter à la ligne"; //break; case "Date_Jour": additionalData += this.separator + DateTime.Now.ToString("MM/dd/yyyy"); break; default: additionalData += this.separator + "Sourcer la donnée dans le plugin !!!"; break; } } ); return(additionalData); }
/// <summary> /// Ajoute des zones nommées de feuille Excel /// </summary> /// <param name="wkb">Classeur Excel</param> private void AddColumnsNames(ExcelWorkbook wkb, out string header) { int cpt = 0; StringBuilder ch = null; string entete; // Parcours de la table de correspondance entre les colonnes d'onglets Excel foreach (DataRow hd in this.mappedCols) { cpt += 1; // Ajoût des zones nommées sur l'onglet 'RE INVESTMENT' this.AddName2Sheet( hd[1].ToString().Trim(), wkb.Worksheets[this.sheetNames[0]], "RE_" + cpt.ToString() ); // Ajoût des zones nommées sur l'onglet 'RE INVESTMENT ON USE' this.AddName2Sheet( hd[2].ToString().Trim(), wkb.Worksheets[this.sheetNames[1]], "RE_" + cpt.ToString() ); // Construction d'une En-tête commune aux onglets - Si l'alias est présent alors il sert d'en-tête aux colonnes if (!String.IsNullOrEmpty(hd["ALIAS_COL"].ToString().Trim())) { entete = hd["ALIAS_COL"].ToString().Trim(); } else { // En-tête - Si l'alias est absent et que les en-têtes sont identiques alors le nom commun sert d'en-tête if (hd["RE_INVESTMENT"].ToString().Contains(hd["RE_OWN_USE"].ToString().Trim())) { entete = hd["RE_OWN_USE"].ToString().Trim(); } else { // En-tête - Si l'alias est absent et que les en-têtes sont différentes alors l'en-tête est la concaténation des 5 premiers caractères de chacunes entete = hd["RE_INVESTMENT"].ToString().Trim().Substring(0, 5).Trim() + "&&" + hd["RE_OWN_USE"].ToString().Trim().Substring(0, 5).Trim(); } } // Initialisation du buffer d'en-tête if (ch == null) { // Ajoût de la première colonne d'en-tête ch = new StringBuilder(); ch.Append(entete); } else { // Ajoût du séparateur et de l'en-tête suivante ch.Append(this.separator.ToString() + entete); } } // SVE - 15/02/2017 - Ajoût de colonne(s) informelle(s) dans le header if (XtraInfoCols != null && xtraInfoCol.Count() > 0) { XtraInfoCols.ForEach( col => ch.Append(this.separator.ToString() + col) ); } header = ch.ToString(); }