diff --git a/Controllers/Summary.Controller.cs b/Controllers/Summary.Controller.cs index 5c16b20..98baab7 100644 --- a/Controllers/Summary.Controller.cs +++ b/Controllers/Summary.Controller.cs @@ -32,7 +32,224 @@ namespace rmutr_report.Controllers [FromBody] summary_of_equipment summary_of_equipments) { var _summary_of_equipment = new List() {summary_of_equipments}; + var workbook = new XLWorkbook(); + var ws = workbook.Worksheets.Add("รายการก่อสร้างอาคาร"); + var imagePath = _setting.report_path + @"Logo-RMUTR.png"; + ws.AddPicture(imagePath).MoveTo(ws.Cell("A1")).Scale(0.3); + ws.Range("A4:A6").Merge().Value = "ลำดับความสำคัญ(1)"; + ws.Cell("A4").Style.Alignment.WrapText = true; + ws.Range("A4:A6").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Range("A4:A6").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Range("A4:A6").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell("A4").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("A4").Style.Font.FontSize = 14; + ws.Range("B4:B6").Merge().Value = "รายการ"; + ws.Cell("B4").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell("B4").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Cell("B4").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell("B4").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("B4").Style.Font.FontSize = 14; + ws.Range("C5:E5").Merge().Value = "ประเภทของครุภัณฑ์"; + ws.Range("C5:E5").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Range("C5:E5").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Range("C5:E5").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell("C5").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("C5").Style.Font.FontSize = 11; + ws.Range("C6").Value = "ทดแทนของเดิม"; + ws.Cell("C6").Style.Alignment.WrapText = true; + ws.Cell("C6").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell("C6").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Cell("C6").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell("C6").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("C6").Style.Font.FontSize = 11; + ws.Range("D6").Value = "เพิ่มประสิทธิภาพ"; + ws.Cell("D6").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("D6").Style.Font.FontSize = 11; + ws.Cell("D6").Style.Alignment.WrapText = true; + ws.Cell("D6").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell("D6").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Cell("D6").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Range("E6").Value = "ครุภัณฑ์ใหม่"; + ws.Cell("E6").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("E6").Style.Font.FontSize = 11; + ws.Cell("E6").Style.Alignment.WrapText = true; + ws.Cell("E6").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell("E6").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Cell("E6").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Range("F5:F6").Merge().Value = "หน่วยนับ"; + ws.Cell("F5").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("F5").Style.Font.FontSize = 12; + //ws.Range("F3").Style.Font.Bold = true; + ws.Range("F5:F6").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Range("F5:F6").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Range("F5:F6").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Range("G5:G6").Merge().Value = "จำนวน"; + ws.Cell("G5").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("G5").Style.Font.FontSize = 12; + //ws.Range("G3").Style.Font.Bold = true; + ws.Range("G5:G6").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Range("G5:G6").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Range("G5:G6").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Range("G5").Style.Alignment.SetTextRotation(90); + ws.Range("H5:H6").Merge().Value = "ราคาต่อหน่วย"; + ws.Cell("H5").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("H5").Style.Font.FontSize = 12; + //ws.Range("H3").Style.Font.Bold = true; + ws.Range("H5:H6").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Range("H5:H6").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Range("H5:H6").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Range("I4:M4").Merge().Value = "แผนความต้องการครุภัณฑ์"; + ws.Cell("I4").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("I4").Style.Font.FontSize = 14; + //ws.Range("I2").Style.Font.Bold = true; + ws.Range("I4:M4").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Range("I4:M4").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Range("I4:M4").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Range("I5:M5").Merge().Value = "วงเงิน"; + ws.Cell("I5").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("I5").Style.Font.FontSize = 14; + ws.Range("I5:M5").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Range("I5:M5").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Range("I5:M5").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Range("N4:N6").Merge().Value = "คำอธิบายความพร้อม/ประโยชน์ที่จะได้รับ"; + ws.Cell("N4").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("N4").Style.Font.FontSize = 14; + ws.Cell("N4").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell("N4").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Range("N4:N6").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Row(4).Height = 30; + ws.Row(5).Height = 30; + ws.Row(6).Height = 30; + ws.Column(1).Width = 9; + ws.Column(2).Width = 40; + ws.Column(3).Width = 5; + ws.Column(4).Width = 5; + ws.Column(5).Width = 5; + ws.Column(6).Width = 10; + ws.Column(7).Width = 10; + ws.Column(8).Width = 10; + ws.Column(9).Width = 10; + ws.Column(10).Width = 10; + ws.Column(11).Width = 10; + ws.Column(12).Width = 10; + ws.Column(13).Width = 10; + ws.Column(14).Width = 40; + int row = 7; + int no = 1; + if (summary_of_equipments != null) + { + string second = "ปีงบประมาณ " + summary_of_equipments.academic_year_name_th + " " + + summary_of_equipments.header_name; + string third = "หน่วยงาน/คณะ " + summary_of_equipments.agency_name_th + " พื้นที่ " + + summary_of_equipments.location; + ws.Range("A1:N1").Merge().Value = + "สรุปแผนความต้องการ รายการก่อสร้างอาคารหรือสิ่งก่อสร้างและปรับปรุงซ่อมแซมต่อเติม ของมหาวิทยาลัยเทคโนโลยีราชมงคลรัตนโกสินทร์"; + ws.Range("A1:N1").Merge().Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Range("A1:N1").Merge().Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Range("A2:N2").Merge().Value = second; + ws.Range("A2:N2").Merge().Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Range("A2:N2").Merge().Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Range("A3:N3").Merge().Value = third; + ws.Range("A3:N3").Merge().Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Range("A3:N3").Merge().Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Range("A1:A3").Style.Font.Bold = true; + ws.Range("A1:A3").Style.Font.FontSize = 16; + ws.Range("A1:A3").Style.Font.FontName = "TH Sarabun New"; + ws.Range("C4:H4").Merge().Value = "ปี " + summary_of_equipments.academic_year; + ws.Cell("C4").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("C4").Style.Font.FontSize = 14; + ws.Range("C4:H4").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Range("C4:H4").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Range("C4:H4").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell("I6").Value = summary_of_equipments.budget_year_1; + ws.Cell("I6").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("I6").Style.Font.FontSize = 12; + ws.Cell("I6").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell("I6").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Cell("I6").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell("J6").Value = summary_of_equipments.budget_year_2; + ws.Cell("J6").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("J6").Style.Font.FontSize = 12; + ws.Cell("J6").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell("J6").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Cell("J6").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell("K6").Value = summary_of_equipments.budget_year_3; + ws.Cell("K6").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("K6").Style.Font.FontSize = 12; + ws.Cell("K6").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell("K6").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Cell("K6").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell("L6").Value = summary_of_equipments.budget_year_4; + ws.Cell("L6").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("L6").Style.Font.FontSize = 12; + ws.Cell("L6").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell("L6").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Cell("L6").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell("M6").Value = summary_of_equipments.budget_year_5; + ws.Cell("M6").Style.Font.FontName = "TH Sarabun New"; + ws.Cell("M6").Style.Font.FontSize = 12; + ws.Cell("M6").Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell("M6").Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; + ws.Cell("M6").Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + foreach (var equipments in summary_of_equipments.data) + { + + ws.Cell(row, 1).Value = no; + no++; + ws.Cell(row, 2).Value = equipments.list; + ws.Cell(row, 3).Value = equipments.type_1; + ws.Cell(row, 4).Value = equipments.type_2; + ws.Cell(row, 5).Value = equipments.type_3; + ws.Cell(row, 6).Value = equipments.unit; + ws.Cell(row, 7).Value = equipments.quantity; + ws.Cell(row, 8).Value = equipments.unit_price; + ws.Cell(row, 9).Value = equipments.price_1; + ws.Cell(row, 10).Value = equipments.price_2; + ws.Cell(row, 11).Value = equipments.price_3; + ws.Cell(row, 12).Value = equipments.price_4; + ws.Cell(row, 13).Value = equipments.price_5; + ws.Cell(row, 14).Value = equipments.description; + + ws.Cell(row, 1).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell(row, 2).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell(row, 3).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell(row, 4).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell(row, 5).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell(row, 6).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell(row, 7).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell(row, 8).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell(row, 9).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell(row, 10).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell(row, 11).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell(row, 12).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell(row, 13).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + ws.Cell(row, 14).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; + + ws.Range(ws.Cell(row, 1), ws.Cell(row, 14)).Style.Font.FontName = + "TH Sarabun New"; + ws.Range(ws.Cell(row, 1), ws.Cell(row, 14)).Style.Font.FontSize = 11; + ws.Range(ws.Cell(row, 1), ws.Cell(row, 14)).Style.Alignment.WrapText = true; + ws.Range(ws.Cell(row, 1), ws.Cell(row, 14)).Style.Alignment.Vertical = + XLAlignmentVerticalValues.Center; + ws.Cell(row, 1).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell(row, 2).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Left; + ws.Cell(row, 3).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell(row, 4).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell(row, 5).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell(row, 6).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell(row, 7).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + ws.Cell(row, 8).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Right; + ws.Cell(row, 9).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Right; + ws.Cell(row, 10).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Right; + ws.Cell(row, 11).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Right; + ws.Cell(row, 12).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Right; + ws.Cell(row, 13).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Right; + ws.Cell(row, 14).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Left; + + row++; + } + } Report report = new Report(); report.Load(_setting.report_path + "summary_of_equipment.frx"); report.RegisterData(_summary_of_equipment, "summary_of_equipment"); @@ -46,19 +263,6 @@ namespace rmutr_report.Controllers report.Export(pdf, stream); stream.Seek(0, SeekOrigin.Begin); return File(stream, "application/pdf"); - - case "xls": - Excel2007Export excel = new Excel2007Export(); - report.Export(excel, stream); - stream.Seek(0, SeekOrigin.Begin); - return File(stream, "application/vnd.ms-excel"); - break; - case "xlsx": - Excel2007Export excel1 = new Excel2007Export(); - report.Export(excel1, stream); - stream.Seek(0, SeekOrigin.Begin); - return File(stream, "application/vnd.ms-excel"); - break; case "mht": MHTExport mht = new MHTExport(); report.Export(mht, stream); @@ -73,8 +277,19 @@ namespace rmutr_report.Controllers break; } - return Ok(); - } + using (var stream1 = new MemoryStream()) + { + workbook.SaveAs(stream1); + var content = stream1.ToArray(); + string date = DateTime.Now.ToString("yyyyMMddHHmmss"); + return File( + content, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "equipments_" + date + ".xlsx"); + } + // return Ok(); + + } [HttpPost, Route("reports/summary_of_equipment_five_year/{type}")] [ApiExplorerSettings(GroupName = "reports")] diff --git a/Models/summary_of_equipment.cs b/Models/summary_of_equipment.cs index 857967c..0702294 100644 --- a/Models/summary_of_equipment.cs +++ b/Models/summary_of_equipment.cs @@ -25,6 +25,7 @@ namespace rmutr_report.Models public string type_2 { get; set; } public string type_3 { get; set; } public string unit { get; set; } + public int? quantity { get; set; } public decimal? unit_price { get; set; } public decimal? price_1 { get; set; } public decimal? price_2 { get; set; } diff --git a/wwwroot/reports/summary_of_equipment.frx b/wwwroot/reports/summary_of_equipment.frx index 1b95605..f380cfd 100644 --- a/wwwroot/reports/summary_of_equipment.frx +++ b/wwwroot/reports/summary_of_equipment.frx @@ -1,5 +1,5 @@  - + using System; using System.Collections; using System.Collections.Generic; @@ -54,6 +54,7 @@ namespace FastReport + @@ -65,17 +66,17 @@ namespace FastReport - - - - + + + + - + - + @@ -131,9 +132,9 @@ namespace FastReport - - - + + + @@ -147,15 +148,15 @@ namespace FastReport - - + + - +