Exemple #1
0
        private void Zakaz_Click(object sender, RoutedEventArgs e)
        {
            string path = SaveFile();

            if (path.Equals(""))
            {
                return;
            }
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            using ExcelPackage excel    = new ExcelPackage();
            var workSheet = excel.Workbook.Worksheets.Add("Sheet1");

            workSheet.TabColor         = System.Drawing.Color.Black;
            workSheet.DefaultRowHeight = 12;

            workSheet.Row(1).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
            workSheet.Row(1).Style.Font.Bold           = true;

            var zakazs = from zakaz in db.Zakazs
                         join avto in db.Avtos on zakaz.IdAvto equals avto.IdAvto
                         join vod in db.Vods on zakaz.IdVod equals vod.IdVod
                         join gruz in db.Gruzs on zakaz.IdGruz equals gruz.IdGruz
                         join klient in db.Klients on zakaz.IdKlient equals klient.IdKlient
                         where zakaz.DateVypoln.Month == DateTime.Now.Month - 1
                         select new ZakazCase
            {
                IdZakaz    = zakaz.IdZakaz,
                DateZakaz  = zakaz.DateZakaz,
                NameGruz   = gruz.NameGruz,
                Otkuda     = zakaz.Otkuda,
                Kuda       = zakaz.Kuda,
                DateVypoln = zakaz.DateVypoln,
                Marka      = avto.Marka,
                FIOVod     = vod.F + " " + vod.I + " " + vod.O,
                FIOKlient  = klient.FIO,
                Kol        = zakaz.Kol,
                Summa      = zakaz.Summa
            };
            var gruzs = zakazs.GroupBy(e => e.Kuda).Select(e => new
            {
                Kuda = e.Key,
                Kol  = e.Count(),
            }).OrderByDescending(e => e.Kol).ToList();

            foreach (var item in gruzs)
            {
                MessageBox.Show(item.Kuda + " " + item.Kol);
            }

            workSheet.Cells[1, 1].Value = "Куда";
            workSheet.Cells[1, 2].Value = "Количество за месяц";
            var index = 2;

            foreach (var item in gruzs)
            {
                workSheet.Cells[index, 1].Value = item.Kol;
                workSheet.Cells[index, 2].Value = item.Kol;
                index++;
            }

            if (File.Exists(path))
            {
                File.Delete(path);
            }
            FileStream objFileStrm = File.Create(path);

            objFileStrm.Close();
            File.WriteAllBytes(path, excel.GetAsByteArray());
        }