ในระบบ มักเกิดขึ้นที่สตรีม Excel ถูกสร้างขึ้น และ Excel ที่สร้างขึ้นจะถูกสตรีมไปยังผู้ใช้
โดยทั่วไป
คุณสามารถใช้ Response เพื่อส่งส่วนหัว HTTP ไปยังไคลเอ็นต์ และส่งสตรีม Excel ออกได้
แต่
จะมี ปัญหา
สาเหตุหลักที่กล่องโต้ตอบดาวน์โหลดไฟล์ปรากฏขึ้นสองครั้งเมื่อคุณคลิกเพื่อเปิดคือ
: (เดาในปัจจุบัน ยังไม่พบสาเหตุที่แน่ชัด)
เมื่อเปิดครั้งแรกพบว่าไฟล์ชั่วคราวของสตรีม Excel มีอยู่แล้วในระบบ (เป็นไฟล์ที่ไม่มีนามสกุลไฟล์) แต่ไม่มีไฟล์ต้นฉบับ (ไฟล์จริงมีอยู่แล้ว) ผู้ใช้จะถูกถามว่า เพื่อบันทึกไฟล์ชั่วคราวลงในคอมพิวเตอร์ในตำแหน่งอื่น (เกี่ยวข้องกับการไม่มีชื่อต่อท้ายหรือไม่)
ครั้งที่สอง ให้เลือกตำแหน่งของไฟล์ไคลเอนต์ และจะบันทึกลงในโฟลเดอร์อื่นที่ไม่ใช่ชั่วคราวหรือไม่
วิธีแก้ปัญหาปัจจุบันคือ
การสร้างเพจใหม่โดยเฉพาะเพื่อให้ข้อมูลที่ส่งออก
เขียนโค้ดแบบนี้ใน Page_load ในหน้านี้
โมฆะส่วนตัว Page_Load (ผู้ส่งวัตถุ System.EventArgs e)
{
// ใส่รหัสผู้ใช้ที่นี่เพื่อเริ่มต้นเพจ
ReportRule reportRule=ใหม่ ReportRule();
ไบต์[] result= reportRule.RenderReport(HttpContext.Current.Server.UrlDecode(this.Request.QueryString["peportpath"]),Request.QueryString["id"]); //สร้างกระแสข้อมูล Excel
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
HttpContext.Current.Response.AppendHeader("การจัดการเนื้อหา", "สิ่งที่แนบมา; ชื่อไฟล์=hahh.xls")
; (ผลลัพธ์);
HttpContext.Current.Response.End(
}