الاستخدام الرئيسي هو zip Stream org.apache.tools.zip.zipoutputstream. هنا ، يتم استخدام Execl كمثال.
IDEA أولاً اكتب دفق الرمز البريدي في دفق إخراج استجابة HTTP ، ثم اكتب دفق excel في دفق الرمز البريدي (لا تحتاج إلى إنشاء ملفات ثم حزمها هنا. فقط قراءة واكتب قالب Execl وإخراج البيانات في دفق الرمز البريدي ، وتعيين اسم الملف لكل دفق)
على سبيل المثال: 1.xls ، 2.xls ، توجد ملفات 3.xls في ملف execl ضمن Project WebApp
1.Controller
requestmapping (value = "/apportall" ، method = requestMethod.get) public void orportall () remrows ioException {try {httpservletresponse = this.getResponse () ؛ استجابة. String ExeclName = "Report" ؛ Response.addHeader ("Disposition" ، "المرفق ؛ Filename =" +New String (ExeclName.getBytes () ، "ISO-8859-1") +". zip") ؛ outputStream Out = response.getOutputStream () ؛ TestService.exportall (Out) ؛ } catch (استثناء e) {....}}2. الخدمة
استيراد java.io.outputstream ؛ استيراد org.apache.poi.hssf.usermodel.hssfsheet ؛ استيراد org.apache.poi.hssf.usermodel.hsfworkbook java.io.fileInputStream ؛ استيراد javax.servlet.http.httpservletrequest ؛ استيراد org.apache.poi.hssf.usermodel.hssfcellstyle org.apache.poi.hssf.usermodel.hssfworkbook ؛ استيراد org.apache.poi.poifs.filesystem.poifsfilesystem org.springframework.web.context.request.servletrequestattributes ؛ Public Boolean Exportall (OutputStream Out) {zipoutputStream zipstream = null ؛ HSSFWorkbook WB = NULL ؛ حاول {list <test> datas = testService.getTestData () ؛ zipstream = new zipoutputstream (Out) ؛ // هنا يتم إخراج دفق الرمز البريدي إلى دفق httpresponse لـ (int i = 0 ؛ i <3 ؛ i ++) {wb = poiutil.getworkbook (i) ؛ // get 0،1،2.xls file hssfsheet sheet = wb.getsheetat (0) ؛ TestSservice.setsheet (ورقة ، بيانات) ؛ // ... التعامل مع تشغيل محتوى الملف zipentry zipentry = new zipentry (سلسلة جديدة ("اسم الملف xxx" .getbytes () ، "UTF-8")+". XLS") ؛ // اسمه بنفسك ، هنا 1 ، 2 ، 3 zipstream.putnextentry (zipentry) ؛ wb.write (zipsstream) ؛ // هذه هي الحلقة التي تكتب Execl إلى Zippack في كل مرة zipstream.flush () ؛ }} catch (استثناء e) {رمي sysexception جديد (errorconstants.common_system_error ، e) ؛ } أخيرًا {try {if (wb! = null) {wb.close () ؛ } if (zipstream! = null) {zipstream.close () ؛ } out.flush () ؛ out.close () ؛ } catch (ioException e) {رمي sysexception جديد (errorconstants.common_close_error ، e) ؛ }}} static hssfworkbook getWorkbook (سلسلة bh) {try {string line = file.separator ؛ servletRequestAttributes arequestattributes = (servletRequestAtTributes) requestContextholder.getRequestAttributes () ؛ طلب httpservletrequest = arequestattributes == null؟ null: arequestattributes.getRequest () ؛ String WebPath = request.getServletContext (). getRealPath ("/") ؛ ملف الملف = ملف جديد (WebPath+Line+"Excel"+Line+BH+". XLS") ؛ poifsfilesystem boifsfilesystem = new poifsfilesystem (FileInputStream جديد (ملف)) ؛ HSSFWORKBOOK WB = NEW HSSFWORKBOOK (CONESFILESYSTEM) ؛ إرجاع WB ؛ } catch (استثناء e) {رمي sysexception جديد (errorconstants.common_system_error ، e) ؛ }}تنشئ النتيجة النهائية تقريرًا.
لخص
ما سبق هو تصدير ضغط ملف Java Batch وتنزيله على رمز العينة المحلي الذي تم تقديمه بواسطة المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!