public ActionResult ExportReport(ReportViewModel report, int reportType, int shipId, string tripId) { string path = repository.WriteToExcel(report, reportType); var fileStream = new FileStream(path, FileMode.Open); var mimeType = "application/xls"; var fileDownloadName = path.Substring(path.LastIndexOf(@"\") + 1); return File(fileStream, mimeType, fileDownloadName); //return RedirectToAction("Report", new { shipId = shipId, tripId = tripId }); }
public string WriteToExcel(ReportViewModel report, int reportType) { string fileName = ""; Application xlApp; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlApp = new Application(); xlWorkBook = xlApp.Workbooks.Add(misValue); xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); switch (reportType) { case 1: xlWorkSheet.Cells[1, 1] = "CÔNG TY CỔ PHẦN VẬN TẢI VÀ THUÊ TÀU BIỂN VIỆT NAM"; xlWorkSheet.Cells[3, 1] = "Tên tàu"; xlWorkSheet.Cells[5, 2] = "TÓM LƯỢC TÌNH HÌNH CẢNG XẾP"; xlWorkSheet.Cells[7, 1] = "Cảng:"; xlWorkSheet.Cells[8, 1] = "Agent/Đại lý:"; xlWorkSheet.Cells[9, 1] = "Hàng hóa:"; xlWorkSheet.Cells[10, 1] = "Mớn tàu đến:"; xlWorkSheet.Cells[11, 1] = "Thời gian tàu đến:"; xlWorkSheet.Cells[12, 1] = "Thời gian cập cầu:"; xlWorkSheet.Cells[13, 1] = "Thời gian bắt đầu xếp hàng:"; xlWorkSheet.Cells[14, 1] = "Thời gian hoàn thành xếp hàng:"; xlWorkSheet.Cells[15, 1] = "Thời gian tàu rời cảng:"; xlWorkSheet.Cells[16, 1] = "Mớn tàu rời đi"; xlWorkSheet.Cells[18, 1] = "Ghi chú: Các thông tin cập nhật dựa trên các báo cáo từ tàu/ đại lý … có thể mang tính đơn phương, dự đoán chưa được công nhận bởi các bên liên quan. Để biết thêm thông tin vui lòng liên hệ P.KTTV để có được Statement of Fleets của tàu tại các cảng có chữ ký/ được công nhận bởi các bên liên quan"; xlWorkSheet.Cells[7, 2] = report.OnLoadReport.PortName; xlWorkSheet.Cells[9, 2] = report.OnLoadReport.Goods; xlWorkSheet.Cells[10, 2] = report.OnLoadReport.ComingCube; xlWorkSheet.Cells[11, 2] = report.OnLoadReport.PortComeDate; xlWorkSheet.Cells[12, 2] = report.OnLoadReport.PortComeTime; xlWorkSheet.Cells[13, 2] = report.OnLoadReport.LoadingTime; xlWorkSheet.Cells[14, 2] = report.OnLoadReport.LoadingComplTime; xlWorkSheet.Cells[15, 2] = report.OnLoadReport.LeavingTime; xlWorkSheet.Cells[16, 2] = report.OnLoadReport.LeavingCube; fileName = " Xep_hang_"; break; case 2: xlWorkSheet.Cells[1, 1] = "CÔNG TY CỔ PHẦN VẬN TẢI VÀ THUÊ TÀU BIỂN VIỆT NAM"; xlWorkSheet.Cells[3, 1] = "Tên tàu"; xlWorkSheet.Cells[5, 2] = "TÓM LƯỢC TÌNH HÌNH CẢNG XẾP"; xlWorkSheet.Cells[7, 1] = "Cảng:"; xlWorkSheet.Cells[8, 1] = "Agent/Đại lý:"; xlWorkSheet.Cells[9, 1] = "Hàng hóa:"; xlWorkSheet.Cells[10, 1] = "Mớn tàu đến:"; xlWorkSheet.Cells[11, 1] = "Thời gian tàu đến:"; xlWorkSheet.Cells[12, 1] = "Thời gian cập cầu:"; xlWorkSheet.Cells[13, 1] = "Thời gian bắt đầu dỡ hàng:"; xlWorkSheet.Cells[14, 1] = "Thời gian hoàn thành dỡ hàng:"; xlWorkSheet.Cells[15, 1] = "Thời gian tàu rời cảng:"; xlWorkSheet.Cells[16, 1] = "Mớn tàu rời đi"; xlWorkSheet.Cells[18, 1] = "Ghi chú: Các thông tin cập nhật dựa trên các báo cáo từ tàu/ đại lý … có thể mang tính đơn phương, dự đoán chưa được công nhận bởi các bên liên quan. Để biết thêm thông tin vui lòng liên hệ P.KTTV để có được Statement of Fleets của tàu tại các cảng có chữ ký/ được công nhận bởi các bên liên quan"; xlWorkSheet.Cells[7, 2] = report.UnloadReport.PortName; xlWorkSheet.Cells[9, 2] = report.UnloadReport.Goods; xlWorkSheet.Cells[10, 2] = report.UnloadReport.ComingCube; xlWorkSheet.Cells[11, 2] = report.UnloadReport.PortComeDate; xlWorkSheet.Cells[12, 2] = report.UnloadReport.PortComeTime; xlWorkSheet.Cells[13, 2] = report.UnloadReport.LoadingTime; xlWorkSheet.Cells[14, 2] = report.UnloadReport.LoadingComplTime; xlWorkSheet.Cells[15, 2] = report.UnloadReport.LeavingTime; xlWorkSheet.Cells[16, 2] = report.UnloadReport.LeavingCube; fileName = " Do_hang_"; break; case 3: xlWorkSheet.Cells[1, 1] = "CÔNG TY CỔ PHẦN VẬN TẢI VÀ THUÊ TÀU BIỂN VIỆT NAM"; xlWorkSheet.Cells[3, 1] = "Tên tàu"; xlWorkSheet.Cells[5, 2] = "TÓM LƯỢC TÌNH HÌNH TRANSIT/ BUNKERING/ DEVIATION"; xlWorkSheet.Cells[7, 1] = "Tên cảng/ kênh:"; xlWorkSheet.Cells[8, 1] = "Mục đích:"; xlWorkSheet.Cells[9, 1] = "Thời gian tàu đến:"; xlWorkSheet.Cells[10, 1] = "Thời gian bắt đầu:"; xlWorkSheet.Cells[11, 1] = "Thời gian kết thúc:"; xlWorkSheet.Cells[12, 1] = "Thời gian tàu chạy:"; xlWorkSheet.Cells[14, 1] = "Ghi chú: Các thông tin cập nhật dựa trên các báo cáo từ tàu/ đại lý … có thể mang tính đơn phương, dự đoán chưa được công nhận bởi các bên liên quan. Để biết thêm thông tin vui lòng liên hệ P.KTTV để có được Statement of Fleets của tàu tại các cảng có chữ ký/ được công nhận bởi các bên liên quan"; xlWorkSheet.Cells[7, 2] = report.UnsualReport.PortName; xlWorkSheet.Cells[8, 2] = report.UnsualReport.Purpose; xlWorkSheet.Cells[9, 2] = report.UnsualReport.ComingDate; xlWorkSheet.Cells[10, 2] = report.UnsualReport.StartTime; xlWorkSheet.Cells[11, 2] = report.UnsualReport.FinishTime; xlWorkSheet.Cells[12, 2] = report.UnsualReport.RunTime; fileName = " TRANSIT_BUNKERING_DEVIATION"; break; default: break; } string path = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Uploads/") + "Report" + fileName + DateTime.Today.ToString("dd-MM-yyyy") + ".xls"; xlWorkBook.SaveAs(path, XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); releaseObject(xlWorkSheet); releaseObject(xlWorkBook); releaseObject(xlApp); return path; }
public ActionResult Report(int shipId, string tripId) { var model = new ReportViewModel(); model.OnLoadReport = repository.GetLoadingReport(shipId, tripId, false); model.UnloadReport = repository.GetLoadingReport(shipId, tripId, true); model.UnsualReport = repository.GetUnusualReport(shipId, tripId); ViewBag.shipId = shipId; ViewBag.tripId = tripId; return View(model); }