資料處理層:
List<File> fileList = new ArrayList<File>();String[] array = {"編碼","名稱"};XSSFWorkbook wb = new XSSFWorkbook();XSSFSheet sheet = wb.createSheet("資料內容");XSSFRow row = sheet.createRow(0);XSSFCellStyle style = wb.createCellStyle();style.setAlignment(HSSFCellStyle.ALIGN_CENTER);for(int j = 0; j < array.length; j++){//迴圈表頭XSSFCell cell = row.createCell(j);cell.setCellStyle(style);cell.setCellValue(array[j]);}row = sheet.createRow(1);row.createCell(0).setCellValue("123456");row.createCell(1).setCellValue("小明");FileOutputStream out = null;File file = File.createTempFile("fileName_", ".xlsx");out = FileUtils.openOutputStream(file);wb.write(out);//將資料寫到指定檔案fileList.add(file);out.close();wb.close();
壓縮成ZIP包:
private void toZip(List<File> fileList) throws IOException{if(null != fileList && !fileList.isEmpty()){byte[] buf = new byte[1024];String url = REAL_PATH + "/" + EXPORT_URL + "/" + TABLE_NAME;String fi = url + "/" + TABLE_NAME + ".zip";FileOutputStream os = new FileOutputStream(fi);ZipOutputStream zipOut = new ZipOutputStream(os);for(File file : fileList){FileInputStream in = new FileInputStream(file);zipOut.putNextEntry(new ZipEntry(file.getName()));int len;while((len = in.read(buf)) > 0){zipOut.write(buf, 0, len);}zipOut.closeEntry();in.close();file.delete();//清除臨時文檔}zipOut.close();}}