public LoadRequestReportViewModel GetDetailsRequest(int id) { var request = context.Requests.FirstOrDefault( record => record.Id == id); if (request != null) { LoadRequestReportViewModel report = new LoadRequestReportViewModel { DateCreate = request.DateCreate.ToString(), Details = context.DetailRequests .Where(details => details.RequestId == request.Id) .ToList() .Select(selectDetail => new Tuple <string, int>( context.Details .FirstOrDefault(detail => detail.Id == selectDetail.DetailId).DetailName, selectDetail.Amount)) .ToList() }; if (report != null) { return(report); } else { throw new Exception("Error"); } } return(null); }
public void SaveRequestToExcel(LoadRequestReportViewModel request, string fileName) { var excel = new Microsoft.Office.Interop.Excel.Application(); if (File.Exists(fileName)) { excel.Workbooks.Open(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); } else { excel.SheetsInNewWorkbook = 1; excel.Workbooks.Add(Type.Missing); excel.Workbooks[1].SaveAs(fileName, XlFileFormat.xlExcel8, Type.Missing, Type.Missing, false, false, XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); } Sheets excelsheets = excel.Workbooks[1].Worksheets; var excelworksheet = (Worksheet)excelsheets.get_Item(1); excelworksheet.Cells.Clear(); Microsoft.Office.Interop.Excel.Range excelcells = excelworksheet.get_Range("B2", "C2"); excelcells.Merge(Type.Missing); excelcells.Font.Bold = true; excelcells.Value2 = "Заявка от : "; excelcells.Font.Name = "Times New Roman"; excelcells.Font.Size = 10; excelcells.RowHeight = 30; excelcells = excelworksheet.get_Range("B3", "C3"); excelcells.Merge(Type.Missing); excelcells.Font.Bold = true; excelcells.Value2 = request.DateCreate; excelcells.Font.Name = "Times New Roman"; excelcells.Font.Size = 10; excelcells.RowHeight = 30; int row = 4; foreach (var element in request.Details) { excelworksheet.Cells[row, 2] = element.Item1; excelworksheet.Cells[row, 3] = element.Item2.ToString(); row++; } var range = excelworksheet.get_Range("B2", "C" + row); (range).Cells.Borders.LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; excel.Workbooks[1].Save(); excel.Quit(); }
public void SaveRequestToWord(LoadRequestReportViewModel request, string fileName) { var word = new Microsoft.Office.Interop.Word.Application(); if (File.Exists(fileName)) { File.Delete(fileName); } object missing = System.Reflection.Missing.Value; Document document = word.Documents.Add(ref missing, ref missing, ref missing, ref missing); var paragraph = document.Paragraphs.Add(missing); var range = paragraph.Range; range.Text = "Заявка от : " + request.DateCreate; var font = range.Font; font.Size = 12; font.Name = "Times New Roman"; font.Bold = 1; var paragraphFormat = range.ParagraphFormat; paragraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; paragraphFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle; paragraphFormat.SpaceAfter = 10; paragraphFormat.SpaceBefore = 0; range.InsertParagraphAfter(); var paragraphTable = document.Paragraphs.Add(Type.Missing); var rangeTable = paragraphTable.Range; var table = document.Tables.Add(rangeTable, request.Details.Count(), 2, ref missing, ref missing); font = table.Range.Font; font.Size = 10; font.Name = "Times New Roman"; var paragraphTableFormat = table.Range.ParagraphFormat; paragraphTableFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle; paragraphTableFormat.SpaceAfter = 0; paragraphTableFormat.SpaceBefore = 0; for (int i = 0; i < request.Details.Count(); ++i) { table.Cell(i + 1, 1).Range.Text = request.Details.ElementAt(i).Item1; table.Cell(i + 1, 2).Range.Text = request.Details.ElementAt(i).Item2.ToString(); } table.Borders.InsideLineStyle = WdLineStyle.wdLineStyleInset; table.Borders.OutsideLineStyle = WdLineStyle.wdLineStyleSingle; paragraph = document.Paragraphs.Add(missing); range = paragraph.Range; range.InsertParagraphAfter(); object fileFormat = WdSaveFormat.wdFormatXMLDocument; document.SaveAs(fileName, ref fileFormat, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); document.Close(ref missing, ref missing, ref missing); word.Quit(); }