public void Report(Год_выпуска year, Специальность specialty) { using (db = new EntityContext()) { Excel.Application ex = new Excel.Application(); Excel.Workbook workBook = ex.Workbooks.Add(Type.Missing); Excel.Worksheet sheet = (Excel.Worksheet)ex.Worksheets.get_Item(1); try { db.Заявки.Load(); db.Выпускники.Load(); sheet.Name = "Заявки по специальности"; sheet.Cells[1, 2] = "Заявки на специальность " + specialty.Название_специальности; Excel.Range range = sheet.Range[sheet.Cells[1, 2], sheet.Cells[1, 6]]; range.Font.Size = 16; range.Font.Bold = true; range.Merge(Type.Missing); sheet.Cells[2, 2] = "№ п/п"; sheet.Cells[2, 3] = "Наименование предприятия (организации)"; sheet.Cells[2, 4] = "Должность, профессия"; sheet.Cells[2, 5] = "Дата"; sheet.Cells[2, 6] = "Фамилия выпускника"; var requests = from q in db.Заявки.Local where q.ID_Специальности == specialty.ID_Специальности && q.Дата.Year == year.Номер_года orderby q.Дата select q; int i = 3; foreach (var item in requests) { sheet.Cells[i, 2] = i - 2; sheet.Cells[i, 3] = item.Организация.Наименование; sheet.Cells[i, 4] = item.Должность; sheet.Cells[i, 5] = item.Дата; sheet.Cells[i, 6] = db.Выпускники.Local.Where(q => q.ID_Выпускника == item?.ID_Выпускника).FirstOrDefault()?.Фамилия; i++; } range = sheet.Range[sheet.Cells[2, 2], sheet.Cells[i - 1, 6]]; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlInsideVertical).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlContinuous; range.EntireRow.AutoFit(); range.EntireColumn.AutoFit(); ex.Visible = true; } catch { MessageBox.Show("Выберите все необходимые параметры" + "\nЕсли параметры выбраны, а ошибка осталась, то обратитесь к разработчику", "Не удалось сформировать отчет"); workBook.Close(false); ex.Quit(); ex = null; workBook = null; sheet = null; } } }
public void Report(Специальность specialty, Год_выпуска year) { using (db = new EntityContext()) { Excel.Application ex = new Excel.Application(); Excel.Workbook workBook = ex.Workbooks.Add(Type.Missing); Excel.Worksheet sheet = (Excel.Worksheet)ex.Worksheets.get_Item(1); try { db.Выпускники.Load(); sheet.Name = "Список выпускников " + year.Номер_года; sheet.Cells[1, 2] = "Список не доехавших выпускников \nза " + year.Номер_года + "; Специальность - " + specialty.Название_специальности; Excel.Range range = sheet.Range[sheet.Cells[1, 2], sheet.Cells[1, 5]]; range.Font.Size = 16; range.Font.Bold = true; range.Merge(Type.Missing); range.RowHeight = 45; sheet.Cells[2, 2] = "№ п/п"; sheet.Cells[2, 3] = "Фамилия, имя, отчество"; var graduates = from graduate in db.Выпускники.Local where graduate.ID_Года_выпуска == year.ID_Года_выпуска && graduate.ID_Специальности == specialty.ID_Специальности && graduate.аспределение.First().Куда_прибыл == null orderby graduate.Фамилия select graduate; int i = 3; foreach (var item in graduates) { sheet.Cells[i, 2] = i - 2; sheet.Cells[i, 3] = item.Фамилия + " " + item.Имя + " " + item.Отчество; i++; } range = sheet.Range[sheet.Cells[2, 2], sheet.Cells[i - 1, 3]]; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlInsideVertical).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlContinuous; range.EntireRow.AutoFit(); range.EntireColumn.AutoFit(); ex.Visible = true; range = null; } catch { MessageBox.Show("Выберите все необходимые параметры" + "\nЕсли параметры выбраны, а ошибка осталась, то обратитесь к разработчику", "Не удалось сформировать отчет"); workBook.Close(false); ex.Quit(); ex = null; workBook = null; sheet = null; } } }
public void Report(Специальность specialty, Год_выпуска year) { using (db = new EntityContext()) { Excel.Application ex = new Excel.Application(); Excel.Workbook workBook = ex.Workbooks.Add(Type.Missing); Excel.Worksheet sheet = (Excel.Worksheet)ex.Worksheets.get_Item(1); try { db.Выпускники.Load(); sheet.Name = "Ведомость от " + year.Номер_года; sheet.Cells[1, 2] = "Ведомость от " + year.Номер_года + "; Специальность - " + specialty.Название_специальности; Excel.Range range = sheet.Range[sheet.Cells[1, 2], sheet.Cells[1, 5]]; range.Font.Size = 16; range.Font.Bold = true; range.Merge(Type.Missing); sheet.Cells[2, 2] = "№ п/п"; sheet.Cells[2, 3] = "Фамилия, имя, отчество"; sheet.Cells[2, 4] = "Наименование предприятия (организации)"; sheet.Cells[2, 5] = "Должность, профессия"; var graduates = from q in db.Выпускники.Local where q.ID_Специальности == specialty.ID_Специальности && q.ID_Года_выпуска == year.ID_Года_выпуска orderby q.Фамилия select q; int i = 3; foreach (var item in graduates) { sheet.Cells[i, 2] = i - 2; sheet.Cells[i, 3] = item.Фамилия + " " + item.Имя + " " + item.Отчество; sheet.Cells[i, 4] = item.аспределение.First()?.Заявка?.Организация?.Наименование; sheet.Cells[i, 5] = item.аспределение.First()?.Информация.FirstOrDefault(q => q.Номер_полугодия == 0).Должность; i++; } range = sheet.Range[sheet.Cells[2, 2], sheet.Cells[i - 1, 5]]; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlInsideVertical).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlContinuous; range.EntireRow.AutoFit(); range.EntireColumn.AutoFit(); ex.Visible = true; range = null; } catch { MessageBox.Show("Выберите все необходимые параметры" + "\nЕсли параметры выбраны, а ошибка осталась, то обратитесь к разработчику", "Не удалось сформировать отчет"); workBook.Close(false); ex.Quit(); ex = null; workBook = null; sheet = null; } } }
public void Report(Год_выпуска year, Специальность specialty) { using (db = new EntityContext()) { Excel.Application ex = new Excel.Application(); Excel.Workbook workBook = ex.Workbooks.Add(Type.Missing); Excel.Worksheet sheet = (Excel.Worksheet)ex.Worksheets.get_Item(1); try { db.Выпускники.Load(); sheet.Name = "Информация о работе за " + year.Номер_года; sheet.Cells[2, 2] = "№ п/п"; sheet.Cells[2, 3] = "Фамилия, имя, отчество"; sheet.Cells[2, 4] = "1 полугодие"; sheet.Cells[2, 5] = "2 полугодие"; sheet.Cells[2, 6] = "3 полугодие"; sheet.Cells[2, 7] = "4 полугодие"; sheet.Cells[2, 8] = "5 полугодие"; sheet.Cells[2, 9] = "6 полугодие"; var graduates = from q in db.Выпускники.Local where q.ID_Специальности == specialty.ID_Специальности && q.ID_Года_выпуска == year.ID_Года_выпуска orderby q.Фамилия select q; int i = 3; foreach (var item in graduates) { sheet.Cells[i, 2] = i - 2; sheet.Cells[i, 3] = item.Фамилия + " " + item.Имя + " " + item.Отчество; sheet.Cells[i, 4] = item.аспределение?.First().Информация?.Where(q => q?.Номер_полугодия == 1).Select(q => q?.Организация?.Наименование).First(); sheet.Cells[i, 5] = item.аспределение?.First().Информация?.Where(q => q?.Номер_полугодия == 2).Select(q => q?.Организация?.Наименование).First(); sheet.Cells[i, 6] = item.аспределение?.First().Информация?.Where(q => q?.Номер_полугодия == 3).Select(q => q?.Организация?.Наименование).First(); sheet.Cells[i, 7] = item.аспределение?.First().Информация?.Where(q => q?.Номер_полугодия == 4).Select(q => q?.Организация?.Наименование).First(); sheet.Cells[i, 8] = item.аспределение?.First().Информация?.Where(q => q?.Номер_полугодия == 5).Select(q => q?.Организация?.Наименование).First(); sheet.Cells[i, 9] = item.аспределение?.First().Информация?.Where(q => q?.Номер_полугодия == 6).Select(q => q?.Организация?.Наименование).First(); i++; } Excel.Range range = sheet.Range[sheet.Cells[2, 2], sheet.Cells[i - 1, 9]]; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlInsideVertical).LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders.get_Item(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlContinuous; range.EntireRow.AutoFit(); range.EntireColumn.AutoFit(); ex.Visible = true; } catch { MessageBox.Show("Выберите все необходимые параметры" + "\nЕсли параметры выбраны, а ошибка осталась, то обратитесь к разработчику", "Не удалось сформировать отчет"); workBook.Close(false); ex.Quit(); ex = null; workBook = null; sheet = null; } } }