En las aplicaciones web, no podemos exportar informes como las aplicaciones de Windows porque el programa se ejecuta en el lado del servidor. Cuando se ejecuta la exportación, los resultados también están en el lado del servidor. Entonces, ¿cómo podemos lograr una exportación completa del lado del cliente? De hecho, esto no es difícil. El método es: exportar el informe a un archivo de informe temporal creado previamente en un sitio web determinado y luego usar el comando Response.redirect () para señalar la URL del navegador a la ubicación del informe. el navegador del usuario intentará descargar el archivo recién exportado y el archivo se descargará al cliente, logrando así el efecto que necesitamos. Parte del código es el siguiente:
cadena pública ExportReport()
{
ExportOptions creo = new ExportOptions();
DiskFileDestinationOptions crdo = new DiskFileDestinationOptions();
string FileName = Request.PhysicalApplicationPath + "ExportFileExap.xls"
//Establecer opciones de exportación
;
creo = Myrpt.ExportOptions;
creo.ExportFormatType = ExportFormatType.Excel;
creo.ExportDestinationType = ExportDestinationType.DiskFile
//Establecer opciones de archivo de disco
;
crdo.DiskFileName = Nombre de archivo;
creo.DestinationOptions = crdo;
//Exportar informe
MiRpt.Export();
devolver nombre de archivo;
}
botón de anulación privadoExport_Click(remitente del objeto, System.EventArgs e)
{
cadena NombreDeArchivo = ExportReport();
Response.Redirect(Replace(FileName,Request.PhysicalApplicationPath + "ExportFile",""));
}
Cabe señalar que al exportar a la web, debe tener permiso para crear archivos en el directorio de exportación. Si los permisos son insuficientes, aparecerá el error "Acceso denegado al archivo de informe...". Simplemente permita que el usuario de ASPNET (el usuario del sistema generado automáticamente al instalar .NET Framework) tenga permisos de "escritura" en el archivo del directorio de exportación.