none
¿Cómo puedo cargar un template (plantilla) usando EPPLUS en asp.net? (CRITICIDAD: MUY URGENTE) RRS feed

  • Pregunta

  • Un saludo para todos,

    estoy intentando cargar una plantilla excel, usando la librería EPPLUS; para luego, agregarle la data en celdas específicas; sin embargo, no logro cargar la plantilla.

    NOTA: Estoy utilizando ASP.NET (2.0) con Visual Basic

        Dim path As String
        Dim pathAux As FileInfo     
        Dim excelPackage As ExcelPackage
        Dim workSheet As ExcelWorksheet
        Dim file As FileInfo

            path = rutaAbsoluta & "\excel\plantilla.xls"

            file = New FileInfo(path)

            If file.Exists Then
                file.Delete()
                file = New FileInfo(path)
            End If

            pathAux = New FileInfo(path)
            excelPackage = New ExcelPackage(file, pathAux)

            excelPackage.save()


    Gracias a todos por sus comentarios.

    ---------------------------------------------------------------------------------------------------



    Luis Llatas







    • Editado Luis LLatas domingo, 4 de abril de 2021 14:49
    domingo, 4 de abril de 2021 3:15

Todas las respuestas

  • A juzgar por el mensaje de error, no le está gustando la ruta que le has pasado.

    Comprueba con el debugger qué es lo que te llega en la variable rutaAbsoluta, a ver si es correcto.

    Una vez verificado que la ruta está bien (pero compruébalo "de verdad" con el debuger, no confíes en que simplemente "debería estar bien" de conformidad con la lógica de tu programa), el segundo problema que se puede presentar es de falta de permisos. Recuerda que un programa de ASP.NET no se ejecuta con los permisos del usuario que está viendo la aplicación en su naveggador, sino con los permisos de la cuenta del Pool de IIS bajo la que se ha instalado la aplicación. Esta cuenta, de manera predeterminada, es muy poco privilegiada y no tiene permiso de acceso a casi ninguna ruta del archivos en el disco. Entonces, si por ejemplo el fichero está bajo tu carpeta "Mis Documentos", no tendrá permiso de acceder a él. Puedes ponerlo en otra ubicación o cambiar los permisos desde el Explorador de archivos de Windows.

    domingo, 4 de abril de 2021 6:46
  • Estimado Alberto, gracias por tu respuesta;

    le he dado permisos a los archivos y a la carpeta; ahora ya me permite generar el archivo excel "nuevoArchivo.xls"; sin embargo, obtengo el siguiente mensaje de error al intentar abrir el archivo excel: "nuevoArchivo.xls" luego de realizar una prueba con el archivo excel que utilizo como plantilla: "archivoplantilla.xls", recalco nuevamente que requiero trabajar sobre una plantilla de excel que ya tiene una estructura; sólo requiero agregar la data en las celdas correspondientes. (Lineas abajo, presento el código que he utilizado). Tal vez esté un poco confundido en cómo funciona excelPackage, en el uso de plantillas)


    Dim rutaNuevoArchivo As String Dim fileNuevoArchivo As FileInfo Dim rutaArchivoPlantilla As String Dim fileArchivoPlantilla As FileInfo rutaNuevoArchivo = rutaAbsoluta & "\excel\nuevoArchivo.xls" fileNuevoArchivo = New FileInfo(rutaNuevoArchivo) If fileNuevoArchivo.Exists Then fileNuevoArchivo.Delete() fileNuevoArchivo = New FileInfo(rutaNuevoArchivo) End If rutaArchivoPlantilla = rutaAbsoluta & "\excel\archivoplantilla.xls" fileArchivoPlantilla = New FileInfo(rutaArchivoPlantilla)

    excelPackage = New ExcelPackage(fileNuevoArchivo, fileArchivoPlantilla) workSheet = excelPackage.Workbook.Worksheets.Add("Formato") workSheet.Cells(11, 3).Value = "JOSE CABANILLAS" workSheet.Cells(12, 3).Value = "MARIA JOSE" workSheet.Cells(13, 3).Value = "ODONTOLOGIA CHICLAYO" workSheet.Cells(14, 3).Value = "123456" workSheet.Cells(16, 3).Value = "03/04/2021" workSheet.Cells(18, 3).Value = " PRESTAMO ( ) CUSTODIA ( X ) REPARACION ( ) OTRO ( )" excelPackage.Save()


    Espero puedas orientarme, Muchas Gracias.


    Luis Llatas















    • Editado Luis LLatas domingo, 4 de abril de 2021 14:07
    domingo, 4 de abril de 2021 13:53
  • Parece ser que le estás pasando un archivo .xls. Pero en la documentación de EPPLUS dice que la clase ExcelPackage únicamente acepta el formato .xlsx.

    https://epplussoftware.com/docs/5.0/api/OfficeOpenXml.ExcelPackage.html

    domingo, 4 de abril de 2021 15:46
  • Estimado Alberto, gracias por tu apoyo; me ha servido de mucho.

    Líneas abajo dejo el código esencial, que me permitió cargar una plantilla de un archivo excel (.xlsx) y agregarle data. Importante: El archivo excel debe estar necesariamente en formato (.xlsx) y se debe agregar los permisos necesarios a dicho archivo excel; si está utilizando el IIS se deberá agregar permisos al usuario del aplicativo IIS en el archivo excel.

    Dim rutaArchivo As String = "" Dim excelPackage As ExcelPackage Dim workSheet As ExcelWorksheet Dim rutaArchivoPlantilla As String Dim fileArchivoPlantilla As FileInfo rutaArchivoPlantilla = rutaAbsoluta & "\excel\formatoExcelPlantilla.xlsx" fileArchivoPlantilla = New FileInfo(rutaArchivoPlantilla) excelPackage = New ExcelPackage(fileArchivoPlantilla) workSheet = excelPackage.Workbook.Worksheets(1) workSheet.Cells(11, 3).Value = "JOSE PEEZ" workSheet.Cells(12, 3).Value = "ALEX GONZALES" workSheet.Cells(13, 3).Value = "ODONTOLOGIA CHICLAYO" workSheet.Cells(14, 3).Value = "123456" workSheet.Cells(16, 3).Value = "03/04/2021" workSheet.Cells(18, 3).Value = "PRESTAMO" excelPackage.Save()


    Espero pueda ayudar este fragmento de código a alguien más. Muchas Gracias. 


    Luis Llatas







    • Editado Luis LLatas domingo, 4 de abril de 2021 18:08
    domingo, 4 de abril de 2021 17:54
  • Hola,

    Gracias por levantar tu consulta en los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    lunes, 5 de abril de 2021 13:58
    Moderador