public WordManager(List<WordInfo> wl, String uri, WordDateInfo info) { wordList = wl; invitacionUri = uri; wordDateInfo = info; }
protected void btnCrear_Click(object sender, EventArgs e) { //Se inicia el proceso al finalizar la subida del archivo excel List<WordInfo> wordList = null; try { if (fileExcel.HasFile) { //Determinar si es un archivo 2003 o 2007 Stream datos = fileExcel.FileContent; IExcelDataReader reader = null; if (Path.GetExtension(fileExcel.FileName).Equals(EXCEL_2007)) //Es archivo 2007 { reader = ExcelReaderFactory.CreateOpenXmlReader(datos); } else if (Path.GetExtension(fileExcel.FileName).Equals(EXCEL_2003)) //Es 2003 { reader = ExcelReaderFactory.CreateBinaryReader(datos); } using (reader) { //Verificamos que sea un archivo valido if (reader.IsValid) { //Supondremos que la primer fila es columna reader.IsFirstRowAsColumnNames = true; Configuracion configuracion = Configuracion.GetInstance(); wordList = (from read in reader.AsDataSet().Tables[0].AsEnumerable() select new WordInfo { Calle = read[configuracion.PositionCalle].ToString(), Colonia = read[configuracion.PositionColonia].ToString(), Credito = Convert.ToInt64(read[configuracion.PositionCredito]), Nombre = read[configuracion.PositionNombre].ToString() }).ToList(); } } WordDateInfo dateInfo = new WordDateInfo { FechaInvitacion = DateTime.Parse(txtInvitacion.Text), FechaMediacion = DateTime.Parse(txtMediacion.Text) }; dateInfo.HoraInicio = new DateTime(1, 1, 1, int.Parse(HourMinuteInitial.HoraInicial), int.Parse(HourMinuteInitial.MinutoFinal), 0); if (HourMinuteInitial.IndexAMPM > 0) dateInfo.HoraInicio = dateInfo.HoraInicio.AddHours(12); dateInfo.HoraFinal = new DateTime(1, 1, 1, int.Parse(HourMinuteFinal.HoraInicial), int.Parse(HourMinuteFinal.MinutoFinal), 0); if (HourMinuteFinal.IndexAMPM > 0) dateInfo.HoraFinal = dateInfo.HoraFinal.AddHours(12); WordManager manager = new WordManager(wordList, Server.MapPath(RESOURCE_INVITACION_DOCX), dateInfo); byte[] response = manager.CreateResponse(); Response.Clear(); Response.ClearHeaders(); Response.AppendHeader("content-disposition", "attachment; filename=invitaciones.zip"); Response.ContentType = "application/zip"; Response.OutputStream.Write(response, 0, response.Length); } } catch (Exception) { } }