Как читать данные из excel и показывать их в виде?
Мне нужно создать приложение с архитектурой mvc arquitecture. Мне нужно показать список студентов. Эти данные находятся в excel, до сих пор не очень хорошо понимаю логику mvc, я создал следующие классы, но понятия не имею, как отображать данные в представлениях.
Класс студентов
public class Alumno { public string nombre { get; set; } public string apellido { get; set; } public int generacion { get; set; } public void crearAlumno( string nombre , string apellido , string generacion) { throw new NotImplementedException(); } }
Соединение Excel
public class UtilExcel { private static readonly ILog Log = LogManager.GetLogger(typeof(UtilExcel)); private static Microsoft.Office.Interop.Excel.Application appExcel; private static Workbook newWorkbook = null; private static _Worksheet objsheet = null; //Method to initialize opening Excel public bool excel_init(String path) { appExcel = new Microsoft.Office.Interop.Excel.Application(); bool retVal = false; if (System.IO.File.Exists(path)) { // then go and load this into excel newWorkbook = appExcel.Workbooks.Open(path, true, true); objsheet = (_Worksheet)appExcel.ActiveWorkbook.ActiveSheet; retVal = true; } else { Log.Info("No es posible abrir archivo [" + path + "]"); System.Runtime.InteropServices.Marshal.ReleaseComObject(appExcel); appExcel = null; //System.Windows.Forms.Application.Exit(); } return retVal; } //Method to get value; cellname is A1,A2, or B1,B2 etc...in excel. public string excel_getValue(string cellname) { string value = string.Empty; try { value = objsheet.get_Range(cellname).get_Value().ToString(); } catch { value = null; } return value; } //Method to close excel connection public void excel_close() { if (appExcel != null) { try { newWorkbook.Close(); System.Runtime.InteropServices.Marshal.ReleaseComObject(appExcel); appExcel = null; objsheet = null; } catch (Exception ex) { appExcel = null; Log.Info("No es posible liberar el objeto: " + ex.ToString()); } finally { GC.Collect(); } } } }
Класс для чтения данных
public class ProcesoService { private static readonly ILog Log = LogManager.GetLogger(typeof(ProcesoService)); public void procesarCargaDatos(string archivo) { Log.Info("Inicio proceso archivo [" + archivo + "]"); UtilExcel utlXls = new UtilExcel(); string path = @"C:\students.xlsx" + archivo; if (utlXls.excel_init(path)) { Alumno prodSrv = new Alumno(); // int fila = 2; bool continuar = true; while (continuar) { //A: Producto string nombre = utlXls.excel_getValue(string.Format("A{0}", fila)); if (nombre != null && !nombre.Equals(string.Empty)) { //B: Apellido string apellido = utlXls.excel_getValue(string.Format("B{0}", fila)); //C: Añoingreso string generacion = utlXls.excel_getValue(string.Format("C{0}", fila)); prodSrv.crearAlumno(nombre, apellido, generacion); // fila++; } else continuar = false; } // utlXls.excel_close(); prodSrv = null; } utlXls = null; Log.Info("Término proceso archivo [" + archivo + "]"); } }
Что я уже пробовал:
Я пробовал это, но я не знаю, хорошо, пожалуйста, мне нужна помощь :c , у меня нет кода в контроллерах