none
Rellenar plantilla excel desde asp mvc RRS feed

  • Pregunta

  • Hola amigos! tengo una duda. Debo llenar un excel que ya tengo diseñando y debe llenarse desde un sitio web.

    Es la primera vez que hago algo asi en mvc y no se  como aplicarlo.

    Hay mucha info para crearlo pero no consigo informacion para llenar celdas especificas en el documento

    Cual seria la mejor practica?

    Crear una clase o hacerlo desde el controlador?


    José

    lunes, 21 de septiembre de 2015 4:04

Todas las respuestas

  • Ya resolvi mi problema, les dejo la solucion aunque no se si es la mas adecuada. gracias!

    Cliente query = db.Cliente.Single(m => m.Ids == id);
    
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                Workbook wb = excel.Workbooks.Open(@"c:\users\jose1\documents\visual studio 2013\Projects\Pruebas\Pruebas\Resources\Recibo.xlsx",
                    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);
                Worksheet ws = (Worksheet)excel.ActiveSheet;
                excel.Visible = true;
    
                ws.Cells[1, 49] = query.Ids.ToString();
                ws.Cells[2, 49] = query.Fecha_Registro;
                ws.Cells[6, 23] = query.FullName;


    José


    • Editado Jose1714 lunes, 21 de septiembre de 2015 4:25 error
    lunes, 21 de septiembre de 2015 4:24
  • les dejo la solucion aunque no se si es la mas adecuada

    Sería una buena solución en una aplicación de escritorio que siempre vaya a ejecutarse en un ordenador en el que exista un Excel instalado.

    Pero para una aplicación web es bastante mala idea. Microsoft desaconseja usar automatización OLE para manejar las aplicaciones de Office en un servidor web, por varias razones entre ellas la eficiencia y la seguridad. Si no tienes más remedio que hacerlo, piensa en que necesitarás adquirir una licencia de Excel para el servidor de producción, y ten presente también que tendrás que manipular los permisos de DCOM para que el sitio web sea capaz de llamar a Excel. Esto no se nota cuando lo ruedas desde Visual Studio con el servidor interno rodando bajo tu propia cuenta de usuario, pero prepárate para pelear con ello cuando intentes montarlo en el servidor de producción.

    Como alternativa, podrías usar las librerías de OpenXml para manipular el .xslx. Esto sí que no tiene ningún problema para ejecutarse en un servidor, el único inconveniente es que la curva de aprendizaje para aprender a usar OpenXml es muy empinada.

    lunes, 21 de septiembre de 2015 8:37