示例#1
0
        public static Response HHsXlsx(long PPId)
        {
            using (ExcelPackage pck = new ExcelPackage())
            {
                ExcelWorksheet ws = pck.Workbook.Worksheets.Add("HHsRpr");

                // Header (first row)
                ws.Cells[1, 1].Value    = "Hesap";
                ws.Cells["A1:A2"].Merge = true;
                ws.Cells[1, 6].Value    = "Not";
                ws.Cells["F1:F2"].Merge = true;

                ws.Cells[1, 2].Value    = "Gercek";
                ws.Cells["B1:C1"].Merge = true;

                ws.Cells[1, 4].Value    = "Hedef";
                ws.Cells["D1:E1"].Merge = true;

                ws.Cells[2, 2].Value = "Gider";
                ws.Cells[2, 3].Value = "Gelir";
                ws.Cells[2, 4].Value = "Gider";
                ws.Cells[2, 5].Value = "Gelir";

                ws.Row(1).Style.Font.Bold = true;
                ws.Row(2).Style.Font.Bold = true;

                ws.Column(2).Style.Numberformat.Format = "#,###";
                ws.Column(3).Style.Numberformat.Format = "#,###";
                ws.Column(4).Style.Numberformat.Format = "#,###";
                ws.Column(5).Style.Numberformat.Format = "#,###";

                if (Db.FromId((ulong)PPId) is PP pp)
                {
                    //var hhs = Db.SQL<HH>("select r from HH r where r.PP = ?", pp);
                    int cr = 3;
                    foreach (var hh in HH.View(pp))
                    {
                        ws.Cells[cr, 1].Value = hh.AdFull;
                        //ws.Cells[cr, 1].Value = hh.Ad;
                        //ws.Cells[cr, 1].Style.Indent = hh.Lvl - 1;

                        ws.Cells[cr, 2].Value = hh.GrcGdr;
                        ws.Cells[cr, 3].Value = hh.GrcGlr;
                        ws.Cells[cr, 4].Value = hh.ThmGdr;
                        ws.Cells[cr, 5].Value = hh.ThmGlr;
                        ws.Cells[cr, 6].Value = hh.Info;

                        cr++;
                    }
                    using (var range = ws.Cells["A2:F2"])
                    {
                        range.AutoFilter = true;
                    }


                    //ws.Row(1).Height = 20;
                    ws.Row(1).Style.VerticalAlignment   = OfficeOpenXml.Style.ExcelVerticalAlignment.Center;
                    ws.Row(1).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
                    ws.Row(2).Style.VerticalAlignment   = OfficeOpenXml.Style.ExcelVerticalAlignment.Center;
                    ws.Row(2).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;

                    ws.Column(1).AutoFit();
                    ws.Column(2).AutoFit();
                    ws.Column(3).AutoFit();
                    ws.Column(4).AutoFit();
                    ws.Column(5).AutoFit();
                    ws.Column(6).AutoFit();
                }


                Response r = new Response();
                //r.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                r.ContentType = "application/octet-stream";
                r.Headers["Content-Disposition"] = "attachment; filename=\"HHsRpr.xlsx\"";

                var oms = new MemoryStream();
                pck.SaveAs(oms);
                oms.Seek(0, SeekOrigin.Begin);

                r.StreamedBody = oms;
                return(r);
            }
        }