En el sistema, a menudo sucede que se genera el flujo de Excel y el Excel generado se transmite al usuario.
En términos generales,
puede
usar la Respuesta para enviar un encabezado HTTP al cliente y enviar el flujo de Excel
. Problema
La razón principal por la queel cuadro de diálogo de descarga de archivos aparece dos veces cuando hace clic para abrir es
: (conjetura actual, aún no se ha encontrado la razón exacta).
Cuando se abre por primera vez, el archivo temporal de la secuencia de Excel ya existe en el sistema (es el archivo sin la extensión del archivo), pero no hay uno original (el archivo real existe). para guardar el archivo temporal en la computadora en otras posiciones. (¿Está relacionado con la falta de nombre de sufijo?)
La segunda vez, seleccione la ubicación del archivo del cliente y si desea guardarlo en otra ubicación de carpeta no temporal.
La solución actual es
crear una nueva página específicamente para proporcionar datos exportados.
Escribe código como este en Page_load en esta página
private void Page_Load(object sender, System.EventArgs e)
{
//Ponga el código de usuario aquí para inicializar la página
ReportRule reportRule=nueva ReglaReport();
byte[] resultado= reportRule.RenderReport(HttpContext.Current.Server.UrlDecode(this.Request.QueryString["peportpath"]),Request.QueryString["id"]); //Generar flujo de Excel
HttpContext.Current.Response.ContentType = "aplicación/vnd.ms-excel";
HttpContext.Current.Response.AppendHeader ("Disposición de contenido", "adjunto; nombre de archivo = hahh.xls")
; (resultado);
HttpContext.Current.Response.End()
;