คำนำ
ฉันเชื่อว่าเพื่อนหลายคนจะส่งออกข้อมูลไปยังข้อกำหนดของ Excel ในการทำงานจริง มักจะมีสองวิธีในการทำเช่นนี้
ก่อนอื่นให้ใช้ JXL เพื่อสร้าง Excel จากนั้นบันทึกลงในเซิร์ฟเวอร์จากนั้นดาวน์โหลดไฟล์หลังจากสร้างหน้า
ประการที่สองคือการใช้ POI เพื่อสร้าง Excel จากนั้นใช้สตรีมเพื่อส่งออกไปยังแผนกต้อนรับเพื่อดาวน์โหลดโดยตรง (PS: แน่นอนมันสามารถสร้างไปยังเซิร์ฟเวอร์แล้วดาวน์โหลดได้) ที่นี่เราพูดถึงประเภทที่สอง
ทางของ Struts2
โดยปกติแล้วฉันจะใส่ HSSFWorkbook ที่สร้างขึ้นแล้วลงในอินพุตสตรีมแล้วไปที่ไฟล์กำหนดค่า XML เพื่อเปลี่ยนผลลัพธ์การส่งคืนเพื่อสตรีม ดังนี้:
โมฆะส่วนตัว Responsedata (HSSFWORKBOOK WB) พ่น IOException {ByTeArrayOutputStream BAOS = ใหม่ byteArrayOutputStream (); wb.write (baos); baos.flush (); ไบต์ [] aa = baos.tobytearray (); excelstream = ใหม่ byteArrayInputStream (aa, 0, aa.length); baos.close ();}ไฟล์กำหนดค่า:
<action name = "exportxxx" method = "exportxxx"> <ชื่อผลลัพธ์ = "ExportSuccess" type = "Stream"> <param name = "inputName"> excelstream </param> <param name = "contentType"> applent; </result> </action>
สิ่งนี้จะบรรลุวัตถุประสงค์ของการคลิกที่ลิงค์เพื่อดาวน์โหลดไฟล์โดยตรง
SpringMvc Way
โพสต์รหัสก่อน:
@RequestMapping ("/exportxxx.action") โมฆะสาธารณะ exportxxx (คำขอ httpservletrequest, การตอบสนอง httpservletResponse, @requestparam (value = "scheduleId", defaultValue = "0") ลอง {Response.Setheader ("เนื้อหา-การจัดสรร", "สิ่งที่แนบมา; ชื่อไฟล์ = dementmentUser.xls"); Response.SetContentType ("Application/vnd.ms-excel; charset = utf-8"); outputStream out = response.getOutputStream (); wb.write (ออก); out.flush (); out.close (); } catch (ioexception e) {e.printstacktrace (); - ในความเป็นจริง SpringMVC และ Struts2 นั้นเหมือนกันในหลักการ แต่ Struts2 เป็นวิธีการกำหนดค่าไฟล์ ขั้นแรกให้ใช้เมธอด createExcel() เพื่อสร้าง Excel และส่งคืน ในที่สุดใช้ response ต่อเอาต์พุต Excel ไปยังเบื้องหน้า วิธีนี้เป็นเรื่องทั่วไปและคุณสามารถลองใช้กับ Servlet、Struts2 ฯลฯ เราต้องตั้งค่าข้อมูลผลลัพธ์ที่สอดคล้องกันในข้อมูลส่วนหัว response เท่านั้น
สรุป
ไม่ว่าจะใช้ struts2 หรือ springmvc มันจะใช้การตอบสนองโดยทั่วไปตราบใดที่เราเข้าใจการตอบสนองอย่างละเอียดไม่ว่าจะเป็นการดาวน์โหลดรูปภาพ, โลก, excel หรือไฟล์อื่น ๆ ก็เหมือนกัน
ที่อยู่ GitHub: https://github.com/crossoverjie
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น