Advertisement
Guest User

Untitled

a guest
Jul 29th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.82 KB | None | 0 0
  1.   protected List<string> ExportRecoltesXLSX(string nomfic, List<Recolte> recoltes)
  2.         {
  3.             nomfic += ".xlsx";
  4.  
  5.             Workbook wb = new Workbook();
  6.             wb.Worksheets[0].Name = "Recolte";
  7.             wb.Worksheets.Add("Recolte_Raisins");
  8.             wb.Worksheets.Add("Recolte_Mouts");
  9.             wb.Worksheets.Add("Recolte_Cave");
  10.  
  11.             var propR = typeof(Recolte).GetProperties(BindingFlags.Public | BindingFlags.Instance);
  12.             var propDR = typeof(DetailRecolte).GetProperties(BindingFlags.Public | BindingFlags.Instance);
  13.  
  14.  
  15.             int i = 0;
  16.             /*sheet 1*/
  17.             for (int rowP = 0; rowP < recoltes.Count; rowP++)
  18.             {
  19.                 for (int col = 0; col < propR.Length; col++)
  20.                 {
  21.                     if (propR[col].PropertyType.Equals(typeof(List<DetailRecolte>)))
  22.                     {
  23.                         var value = propR[col].GetValue(recoltes[rowP], null);
  24.                         var list = value as List<DetailRecolte>;
  25.  
  26.                         wb.Worksheets[0].Cells[0, i].Value = propR[col].Name + "(Bailleur)";
  27.                         wb.Worksheets[0].Cells[rowP + 1, i].Value = list.Sum(dr => dr.QteBai);
  28.                         i++;
  29.  
  30.                         wb.Worksheets[0].Cells[0, i].Value = propR[col].Name + "(Exploitant)";
  31.                         wb.Worksheets[0].Cells[rowP + 1, i].Value = list.Sum(dr => dr.QteExp);
  32.                         i++;
  33.                     }
  34.                     else
  35.                     {
  36.                         wb.Worksheets[0].Cells[0, i].Value = propR[col].Name;
  37.                         wb.Worksheets[0].Cells[rowP + 1, i].Value = propR[col].GetValue(recoltes[rowP], null);
  38.                         i++;
  39.                     }
  40.  
  41.                 }
  42.                 i = 0;
  43.             }
  44.             /*sheet2,3,4*/
  45.  
  46.  
  47.             for (int rowP = 0; rowP < recoltes.Count; rowP++)
  48.             {
  49.                 var r = recoltes[rowP];
  50.                 var dets = new List<List<DetailRecolte>>() { r.QteVenduesRaisins, r.QteVenduesMouts, r.QteApporteesCave };
  51.                 var lineIndex = new List<int>() { 1, 1, 1 };
  52.                 int j = 1;
  53.  
  54.                 do
  55.                 {
  56.                     int cCount = 0;
  57.                     wb.Worksheets[j].Cells[0, cCount++].Value = "IdRecolte";
  58.                     wb.Worksheets[j].Cells[0, cCount++].Value = "CodeEVV";
  59.                     wb.Worksheets[j].Cells[0, cCount++].Value = "CodePPMBailleur";
  60.                     wb.Worksheets[j].Cells[0, cCount++].Value = "CodeProduit";
  61.                     wb.Worksheets[j].Cells[0, cCount++].Value = "Campagne";
  62.  
  63.                     foreach (var det in dets[j - 1])
  64.                     {
  65.                         for (int propIndex = 0; propIndex < propDR.Length; propIndex++)
  66.                         {
  67.                             wb.Worksheets[j].Cells[0, cCount + propIndex].Value = propDR[propIndex].Name;
  68.  
  69.                             wb.Worksheets[j].Cells[lineIndex[j-1] + 1, 0].Value = r.Id;
  70.                             wb.Worksheets[j].Cells[lineIndex[j-1] + 1, 1].Value = r.CodeEVV;
  71.                             wb.Worksheets[j].Cells[lineIndex[j-1] + 1, 2].Value = r.CodePPMBailleur;
  72.                             wb.Worksheets[j].Cells[lineIndex[j-1] + 1, 3].Value = r.CodeProduit;
  73.                             wb.Worksheets[j].Cells[lineIndex[j-1] + 1, 4].Value = r.Campagne;
  74.  
  75.                             wb.Worksheets[j].Cells[lineIndex[j-1] + 1, cCount + propIndex].Value = propDR[propIndex].GetValue(det, null);
  76.  
  77.                         }
  78.                     }
  79.                     lineIndex[j - 1]++;
  80.                     j++;
  81.                 }
  82.                 while (j <= dets.Count);
  83.  
  84.             }
  85.  
  86.             wb.Save(nomfic);
  87.             return new List<string> { nomfic};
  88.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement