コード例 #1
0
 public WordManager(List<WordInfo> wl, String uri, WordDateInfo info)
 {
     wordList = wl;
     invitacionUri = uri;
     wordDateInfo = info;
 }
コード例 #2
0
    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)
        {

        }
    }