مقدمة
أعتقد أن العديد من الأصدقاء سيقومون بتصدير البيانات إلى متطلبات Excel في العمل الفعلي. عادة ما يكون هناك طريقتان للقيام بذلك.
أولاً ، استخدم JXL لإنشاء Excel ، ثم حفظه على الخادم ، ثم قم بتنزيل الملف بعد إنشاء الصفحة.
والثاني هو استخدام POI لإنشاء Excel ، ثم استخدام Stream لإخراجها إلى مكتب الاستقبال لتنزيله مباشرة (PS: بالطبع ، يمكن أيضًا إنشاؤها إلى الخادم ثم تنزيلها.). هنا نناقش النوع الثاني.
Struts2 الطريق
عادةً ما أقوم بوضع HSSFWorkbook تم إنشاؤها بالفعل في inputstream ثم انتقل إلى ملف تكوين XML لتغيير نتيجة الإرجاع إلى الدفق. على النحو التالي:
private void revieData (HSSfworkbook WB) يلقي ioException {bytearrayoutputstream baos = new BytearRayoutputStream () ؛ WB.Write (BAOS) ؛ baos.flush () ؛ بايت [] aa = baos.tobytearray () ؛ excelstream = new ByTearRayInputStream (aa ، 0 ، aa.length) ؛ baos.close () ؛}ملف التكوين:
<action name = "exportxxx" method = "esportxxx"> <result name = "exportSuccess" type = "dream"> <param name = "inputName"> excelStream </param> <param name = "contentType"> application/vnd.ms-excel </param> <param> </result> </Action>
سيحقق هذا الغرض من النقر على الرابط لتنزيل الملف مباشرة.
SPRINGMVC طريقة
انشر الرمز أولاً:
requestmapping ("/exportxxx.action") public void orportxxx (httpservletrequest request ، httpservletresponse response ، requestparam (value = "mathereid" ، defaultValue = "0") int mathereid) {hssfworkbook wb = createExcel (taildered) ؛ حاول {response.setheader ("disposition content" ، "filename = defentementUser.xls") ؛ استجابة. outputStream Out = response.getOutputStream () ؛ WB.Write (Out) ؛ out.flush () ؛ out.close () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ }} في الواقع ، هما SPRINGMVC و Struts2 هي نفسها من حيث المبدأ ، ولكن Struts2 هي الطريقة لتكوين الملف. أولاً ، استخدم طريقة createExcel() لتوليد Excel وإعادتها. أخيرًا ، استخدم response للإخراج Excel إلى المقدمة. هذه الطريقة عامة ، ويمكنك أيضًا تجربتها باستخدام Servlet、Struts2 وما إلى ذلك. نحتاج فقط إلى تعيين معلومات الإخراج المقابلة في معلومات رأس response .
لخص
سواء أكان استخدام Struts2 أو SpringMVC ، يتم استخدامه بشكل أساسي ، طالما أننا نفهم الاستجابة تمامًا ، سواء كانت تنزيل الصور أو العالم أو التفوق أو الملفات الأخرى ، فهي هي نفسها.
عنوان Github: https://github.com/crossoverjie
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.